gpt4 book ai didi

linux - 位置参数上 ls 命令的退出状态

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:43 25 4
gpt4 key购买 nike

我有一个带有两个参数的函数“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

最佳答案

您可以使用测试命令在没有函数和 ls -l 命令的情况下执行此操作

例如,要检查源目录和目标目录是否存在,可以使用以下两行

test -d $source && test -d $destination 
status=$(echo $?)

关于linux - 位置参数上 ls 命令的退出状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27089686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com