我有一个超过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,更新了我的答案。不知道“$ @”'是首选的,因为它在我最初测试时仍然有效,但您的解释是有道理的。 –