我有一个功能' exit_status'这需要两个参数。 $ 1是一个目录(用于备份rsync脚本),$ 2(getStatus)用于设置$ 1的ls的退出状态并将值返回给调用者。如果退出状态等于0,则备份将开始。
我想重写此函数以获取至少3个位置参数,源和目标路径并返回退出状态。我希望该函数能够处理我想要传递两个以上目录的事件来检查。也许我可能会传递几个源目录和目的地。
我没有设置返回退出状态的函数,但我只是寻找检查所有目录的退出状态为0的最佳方法,以便调用者执行备份。如果一个或多个目录具有非零返回退出。
#!/usr/bin/bash
# Drive paths
testOffSiteBkup1="/mnt/hotswp/testoffsitebkup1/"
exit_status () {
local _cmd="/bin/ls -al $1 > /dev/null"
local _getStatus=$2
eval $_cmd
local _status=$?
eval $_getStatus=$_status
}
exit_status $testOffSiteBkup1 getStatus
if [ $getStatus -eq 0 ] ; then
echo "$testOffSiteBkup1 is present."
rsync ......
else
echo "$testOffSiteBkup1 is NOT present."
exit
fi
答案 0 :(得分:0)
您可以在没有函数的情况下执行此操作,并使用测试命令
执行ls -l
命令
例如,要检查源目录和目标目录是否存在,可以使用以下两行
test -d $source && test -d $destination
status=$(echo $?)