Я новичок в создании сценариев bash и пытаюсь выучить несколько вещей. Вот код, который я пробовал:while loop in bash
n=$1
shift
echo "Printing your name $n times"
count=1
for ((i=1;i<=$n;i++))
do
echo [email protected] -$i
count='expr[$count+1]'
done
echo 'New Model'
count=1
while ["$count" -le "$n"]
do
echo [email protected] -$i
count='expr[$count+1]'
done
Цикл обработки работает нормально, но цикл while не печатает желаемый результат. Результат цикла for и while должен быть одинаковым. Не могли бы вы рассказать мне, где я ошибся. Спасибо.
Параметр '[' на самом деле ссылка на '/ bin/test' (ОК, в' bash' это встроенный, но это, откуда приходит). Поэтому '[' это слово (точно так же, как 'ls'), и поэтому ему нужно пространство. –
@BenJackson: Я думаю, что пространства понадобятся даже без этого; обратите внимание, что '[[' 'требует также пространства, даже если оно * является магическим по-другому. – ruakh
Эй, спасибо за информацию, но я не понял, что count = 'expr [$ count + 1]' работал в цикле, но не работал в цикле while, не могли бы вы рассказать мне, почему? Спасибо. – surpavan