我有一個超過20個網絡設備的備份運行配置備份服務器的系統。在服務器端,我必須檢查備份作業是否仍在工作。所以我有這個腳本:用很多參數運行bash腳本
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
device="$1"
backupdir="/backup/$device"
latestbackup="`find $backupdir -mmin -1440 -name "$device*"`"
if [[ -f $latestbackup ]];
then
echo "`date` - $device - latest backup is $latestbackup"
else
echo "`date` - $device - backup not working"
fi
,所以我可以運行此腳本下面的語句:
./backup.sh router1
反正有提供這方面的腳本與更多的參數呢? (20),如:
for x in router1 router2 router3 ...; do ./backup.sh $x; done;
感謝@aguibert,這是完美的 – salvation3103
雖然'$ @'可能適用於這種特殊情況,但通常建議使用'「$ @」' - 注意括起來的雙引號 - 強健,因爲只有這樣才能確保將命令行的原始分區保存到參數中。術語問題:'$ @'是Bash中的_special參數,而不是_operator_。 – mklement0
謝謝@ mklement0,更新了我的答案。不知道「$ @」'是首選的,因爲它在我最初測試時仍然有效,但您的解釋是有道理的。 –