Выполнение команды в переменной [duplicate]

Kali -Linux v2018.1:

Acceso universal > Señalar y hacer clic > Desactivado

Estos pasos le darán la opción de activar el bloqueo numérico manualmente.Esto no es para habilitar el bloqueo numérico automático al iniciar -. Sin embargo, le dará la posibilidad de volver a utilizar el teclado numérico.

-121 ---65526 ​​-

Los archivos divididos contienen diferentes partes del archivo original (completo ), probablemente tengan diferentes contenidos. (La única forma en que serían idénticos sería que el original fuera muy repetitivo.)

Diferentes contenidos dan como resultado diferentes resultados de compresión. Cosas como aaaaaaaaaason ​​más fáciles de comprimir que wekfsiorlm. En archivos de 123 MB, hay bastante espacio para que un archivo sea más "aleatorio" -y parezca (más difícil de comprimir )que otro, incluso si no es tan extremo como mi ejemplo aquí.


Si desea controlar los tamaños de los archivos de resultados comprimidos, puede dividir el original en partes más pequeñas, comprimirlas individualmente y luego concatenar las partes comprimidas, hasta el límite de tamaño deseado. (Sin embargo, no se me ocurre una manera trivial de hacerlo.)

Si la entrada a gzip -dcontiene varios "archivos" comprimidos gzip, los descomprime todos. Aunque esto perdería algo de rendimiento de compresión, ya que la división provoca interrupciones artificiales en los datos.

0
06.05.2019, 01:42
1 ответ

It is often said that...

the fact that resources say that...

Не следуйте слепо «рекомендациям»; невозможно сделать карго -культовое программирование "правильно". Есть ли какой-то первичный «ресурс», такой как справочная страница bash (1 )или стандартная спецификация, в которой говорится об этом?

Если вы хотите оценить строку как фрагмент скрипта, вам следует использовать eval. Для этого:

cmd="echo \"You can't see me\""
eval "$cmd"

Когда вы используете переменную без кавычек, ее расширения не будут повторно сканироваться на наличие метасимволов оболочки, таких как одинарные или двойные кавычки, и повторно анализироваться, а будут разделены только на символы из переменной IFSи расширенного глобуса -. (, если он содержит символы *, ?или [):

cmd="echo \"What's a *? \""

eval "$cmd"
What's a *?

$cmd
"What's a [all the files in your directory] "

В последнем примере cmdбудет развернуто, затем разбито на echo, "What's, a, *?и ", *?будет развернуто по шаблону, а затем echoбудет запущен со всеми остальными строками в качестве аргументов и выведет их, соединенные пробелами, в стандартный вывод (, а в некоторых оболочках echoтакже будет интерпретировать \nи другие escape-последовательности в своих аргументах ).

1
28.01.2020, 02:40

Теги

Похожие вопросы