Могу ли я доверять статусу выхода wget, даже если он был перезапущен?

Ваш цикл while никогда не затрагивает переданные аргументы, он просто использует переменную $ # , которая представляет собой общее количество аргументов, а не сами аргументы.

Если бы мне дали это задание, я бы сделал что-то вроде этого:

#!/bin/bash

# Get no of args
noArgs=$#
# Save arguments in array
myArr=("$@")

# Loop the array
for ((i=0; i<$noArgs; i++)); do
    echo $((i+1)). ${myArr[$i]}
done

exit 0

Пара примеров:

./printArgs.sh foo bar baz
1. foo
2. bar
3. baz

./printArgs.sh 1 2 napalm death
1. 1
2. 2
3. napalm
4. death

./printArgs.sh seasons in the abyss
1. seasons
2. in
3. the
4. abyss
2
20.03.2016, 18:19
2 ответа

Вы можете посмотреть заголовки, отправленные сервером ( - server-response ), и если они содержат Content-Length , то wget выйдет только тогда, когда получит это много байтов. Это упоминается на странице руководства для - ignore-length arg. Но md5 или другие суммы - всегда хорошая идея!

2
27.01.2020, 22:04

Моя интерпретация https://www.gnu.org/software/wget/manual/wget.html

'--no-clobber' Если файл скачивается более одного раза в одном и том же поведение Wget зависит от нескольких опций, включая '-nc'. В некоторых случаях локальный файл будет заблокирован или перезаписан, при повторной загрузке. В других случаях он будет сохранен.

При запуске Wget без '-N', '-nc', '-r' или '-p', загрузка одного и того же файла в один и тот же каталог, исходная копия файла будет сохранена, а вторая копия получит имя 'file.1'. Если этот файл будет загружен еще раз, то третьей копии будет присвоено имя 'file.2', и так далее.

... заключается в том, что wget помещает последние версии в файлы .N и поэтому ему можно доверять. Единственное, что можно исключить, это переопределение WGETRC или другого глобального файла wgetrc.

1
27.01.2020, 22:04

Теги

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