По умолчанию wget ( задокументирован в руководстве ) перезапускается после тайм-аута по умолчанию в 900 секунд (также известного как 15 минут).
Добавление - timeout = 0
решает проблему.
Ну, невозможно узнать, о чем думал автор этого сценария. Но вот некоторые наблюдения:
awk
действительно говорит printf
, затем он печатает целочисленное значение второй строки в строке ввода. awk
— очень мощная программа. Вам почти никогда не нужно запускать его в комбинации с grep
, sed
или другим awk
. Так grep num_lines filename | awk '{ printf("%d", int($2)) }'можно написать
awk '/num_lines/ { printf("%d", int($2)) }' filename
int($2)
дает вам целую часть второй строки в строке ввода. Итак, если в файле конфигурации указано num_lines foo
, вы получите 0
. Если написано num_lines 3.14
, вы получите 3
. Маловероятно, что вам потребуется принимать такие меры предосторожности. с хорошо -сформированным конфигурационным файлом. printf("%d", int($2))— это излишество. Насколько я могу судить,
printf("%d", $2)и
print int($2)(почти )точно эквивалентны.
printf
не пишет новую строку в конце :$ echo "num_lines 42" | awk '{printf("%d", $2)}'; date 42Mon, May 13, 2019 12:00:00 AM $ echo "num_lines 42" | awk '{print int($2)}'; date 42 Mon, May 13, 2019 12:00:01 AMно это не совсем актуально, поскольку
`…`
удаляет завершающую новую строку. variable=valueты должен сказать
set variable=valueили
@ variable=exprКонечно, простая целочисленная константа допустима
expr
, . так что автор может просто использовать @
вместо set
потому что это короче, и они знают, что значение является целым числом. Таким образом, инструкция устанавливает переменную lines
к значению num_lines
из ../config.txt
.