Вы сравниваете размеры каталогов в двух разных операционных системах с двумя разными файловыми системами. Нет причин ожидать, что они будут одинаковыми.
Ваш реальный вопрос заключается в том, как проверить, что данные на диске 1 идентичны данным на диске 2. Лучший инструмент, который я нашел для этого, называется hashdeep. Уже более 12 лет это мой любимый инструмент для проверки целостности файлов.
Исполняемые файлы и исходный код Windows доступны здесь.
Для MacOS X, если вы не хотите компилировать собственную копию, вы можете получить ее в проекте Fink. Извините, что не разместил ссылку, но я здесь новенький и у меня нет необходимых 10 очков репутации, чтобы опубликовать более двух ссылок. Fink можно найти на www finkproject com
. Этот инструмент работает следующим образом: вы создаете список хэшей файлов из источника, а затем используете полученные хэши для проверки совпадения скопированных файлов. Это действительно просто, но вы сможете найти несколько инструкций и видео через Google.
Как насчет этого:
arr1=(abc def)
arr2=(10 20)
А потом:
for (( i=0; i<${#arr1[@]}; i++ )); do echo "${arr1[i]} ${arr2[i]}"; done
abc 10
def 20
В вашем случае оператор echo будет выглядеть так:
for (( i=0; i<${#arr1[@]}; i++ )); do
echo "command option option ${arr1[i]} option ${arr2[i]}"
done
command option option abc option 10
command option option def option 20
См. здесь примеры цикла for в стиле C в bash.
Сzsh
:
$ a=(a b c) b=(1 2 3)
$ for i j (${a:^b}) echo "i: $i, j: $j"
i: a, j: 1
i: b, j: 2
i: c, j: 3
${a:^b}
— оператор сжатия массива -(расширяется до a
, 1
, b
, 2
, c
, 3
выше ).
Если вы хотите зациклить слова, полученные в результате применения оператора split+glob к $VAR1
и $VAR2
в POSIX -подобной оболочке (, такой как busybox sh
, вы, похоже, используете в соответствии с комментарии к ответу @maulinglawns ), вы можете использовать позиционные параметры.
VAR1='a b c'
VAR2='1 2 3'
set -- $VAR1
for j in $VAR2; do
echo "i: $1, j: $j"
shift
done