вопрос цикла чтения while

вопрос цикла чтения while

Найдено в сценарии

{while read logfilename rest

do

LogFileSize=`wc -c $logfilename | awk '{print $1}'`

....

..........

done < /tmp/filelist
}

Я не совсем понимаю rest, что это такое. Может кто-нибудь объяснить?

решение1

В while readцикле:

Строка разбивается на поля, как при разбиении по словам, и первое слово присваивается первому ИМЕНИ, второе слово - второму ИМЕНИ и т. д.любые оставшиеся слова, присвоенные ФАМИЛИИ.

Это означает, что если вы ввели что-то вроде:

name1
name2 foo
name3

И вы делали только:

while read logfilename

На второй итерации ваша logfilenameпеременная будет установлена ​​в значение 'name2 foo'.

Поэтому довольно распространенной практикой для людей является создание переменной "мусор" для сбора любых потенциально нежелательных входных данных, с которыми вы можете столкнуться. Эта переменная, скорее всего, не будет использоваться в скрипте, но она просто нужна для того, чтобы logfilenameникогда не получать плохие данные.

Связанный контент