*
не будет помещаться внутри кавычек. Вам нужно написать это так:
#!/bin/bash
for file in "/home/test/"*; do
echo test
done
Фактически нет никакой разницы.
Опция -h
для df
выбирает «удобочитаемый» вывод, что означает, что размеры вещей будут масштабироваться до соответствующих величин, чтобы получить приятные маленькие удобочитаемые значения, такие как 2,1G или 806M.
Опция -k
делает нечто подобное, но масштабирует размеры только до килобайт, так что вы получите, например. 2165680 и 824550 вместо 2.1G и 806M.
Поскольку эти параметры конфликтуют друг с другом (, вы не можете одновременно указывать размеры в килобайтах и в «удобочитаемом» формате ), последний из указанных параметров будет «выигрывать». Комбинация этих опций, которую вы используете, -kh
(, которая совпадает с -k -h
), означает, что вы получите эффект от использования только -h
. Таким образом, нет никакой разницы между df -h
и df -kh
.
Сравните это поведение с конфликтующими параметрами с другими утилитами, такими как -C
,-1
("минус один" )и параметр-l
("минус элл" )для ls
. и что произойдет, если вы используете все в том или ином порядке.
df -kh
возможно немного медленнее, чем df -h
. Вы, вероятно, не сможете его измерить, но анализ его аргументов займет немного больше времени.
Для тех, кто умеет программировать на языках, где переменные изменяемы (C, python, bash,... ), то примерно так.
set mode to k
set mode to h
do everything else
против
set mode to h
do everything else
К тому времени, когда программа достигает do everything else
, режим устанавливается на h.