Выход из цикла while при достижении последнего позиционного аргумента

Еще один способ, совместимый с POSIX, заключается в использовании awkс его функцией length(), которая возвращает длину в символах в каждой строке входного файла, исключая символы новой строки. Таким образом, делая

awk '{ sum+=length } END { print sum+NR }' file

мы гарантируем, что NRдобавляется к sum, что приводит к общему количеству символов и общему количеству новых строк, встречающихся в файле. Функция length()в awkпринимает аргумент, который по умолчанию означает length($0)для всей текущей строки.

0
23.10.2021, 20:42
1 ответ

Вы должны читать man getopt getopts, а не -пере -пере -изобретать варианты синтаксического анализа.

Вы могли бы сделать свой цикл более компактным, поняв, что $#уменьшается наshift:

while [[ $# -gt 0 ]] ; do
  # some code using $1
 shift
done
1
24.10.2021, 20:32

Теги

Похожие вопросы