2015-12-28 6 views
0

Недавно я нашел часть кода, который меня смущает:петли через пустую строку

может кто-нибудь объяснить, как это перебирает пустой список значений работает?

благодарит за любой пост.

+0

На самом деле, это не делает !! – vish4071

+0

Пустая строка в 'typeset _Var = ''' является красной селедкой. Ключевое слово for предоставит _Var с другими значениями, явно с ключевым словом ** в ** или подразумеваемым с отсутствием. Смотри ниже. –

+0

Это потому, что 'for x' + newline (!) +' Do' эквивалентно оболочке POSIX 'для x в '$ @"; do'. Обратите внимание, что вы ** не можете использовать ** для x; do', потому что некоторые раковины неправильно разбираются в этом. Источник: руководство GNU autoconf texinfo, раздел о переносной оболочке. – mirabilos

ответ

2

Конструкт

for var 
do 
    echo something 
done 

без in ключевого слова по умолчанию в списке позиционных параметров, например, $1, $2 и т.д.

Так что ваш сценарий будет выполняться тело цикла один раз для каждого отдельного аргумент в командной строке.

Фрагмент выше вызывается в качестве выходного сигнала ksh testscript a b c воли:

something 
something 
something 
Смежные вопросы