Вы можете попробовать что-то вроде:
#!/bin/sh
[ -n $1 ] || {
echo "Usage: $0 [url to file to get]" >&2
exit 1
}
wget $1
[ $? ] && {
echo "Could not download $1" | mail -s "Uh Oh" you@yourdomain.com
echo "Aww snap ..." >&2
exit 1
}
# If we're here, it downloaded successfully, and will exit with a normal status
При создании сценария, который (вероятно) будет вызываться другими сценариями, важно сделать следующее:
- Убедитесь, что аргумент здравомыслие
- Отправка электронной почты, запись в журнал или что-то еще, чтобы кто-то знал, что пошло не так
>&2
просто перенаправляет вывод сообщений об ошибках наstderror
, который позволяет вызывающему скрипту делать что-то вроде этого:
foo-downloader >/dev/null 2>/some/log/file.txt
Поскольку это короткая оболочка, нет причин оставлять немного здравомыслия:)
Это также позволяетвы можете выборочно направить вывод wget
в /dev/null
, вы можете захотеть увидеть его при тестировании, особенно если вы получите электронное письмо с сообщением об ошибке:)