在bash中命令1失败时执行命令2

在bash中命令1失败时执行命令2,bash,Bash,我将此作为“解锁”bash脚本的一部分运行,但第一个命令失败- # Variables CHUNK="/media/backup/obnam-home" BIGNUM="17580577608458113855" LOGTO="/home/boudiccas/logs/unlock.txt" #################################################### sudo rm $CHUNK/chunklist/lock; sudo rm $CHUNK/$

我将此作为“解锁”bash脚本的一部分运行,但第一个命令失败-

# Variables 
CHUNK="/media/backup/obnam-home"
BIGNUM="17580577608458113855"
LOGTO="/home/boudiccas/logs/unlock.txt"
####################################################

sudo rm $CHUNK/chunklist/lock;  sudo rm $CHUNK/$BIGNUM/lock; sudo rm      $CHUNK/chunksums/lock; sudo rm $CHUNK/chunks/lock>>'$(date -R)' $LOGTO

即使“x”命令失败,我如何让它继续执行第二个命令和其他命令?

我想这就是您想要的:

# Variables 
CHUNK="/media/backup/obnam-home"
BIGNUM="17580577608458113855"
LOGTO="/home/boudiccas/logs/unlock-$(date -R).txt"
####################################################

{
    sudo rm $CHUNK/chunklist/lock
    sudo rm $CHUNK/$BIGNUM/lock
    sudo rm $CHUNK/chunksums/lock
    sudo rm $CHUNK/chunks/lock
} 2>> $LOGTO

四个
rm
命令中的每一个都将运行,而不管哪个命令成功,哪个命令失败。所有4条错误消息都将被重定向到指定文件(
2>
,而不是
>
)。我假设您想要文件名中的当前时间戳,因此我将调用移动到
date
,以定义
LOGTO

请参见由
分隔的命令按顺序处理,即使第一个命令失败,也会执行第二个命令。我认为您没有正确描述您的问题。为此,我已在/$CHUNK/chunklist/处创建了一个“锁定”文件,但该文件尚未被删除,并且脚本无法显示“/home/boudiccas/bin/unlock:line 36:$LOGTO:dimensional redirect”。抱歉:(在进一步调整并查看过去的工作脚本后,这可以工作
LOGTO=“/home/boudiccas/logs/unlock-$(/bin/date+%Y%m%d).txt”
感谢您让我走上正确的轨道chepner.)