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

时间:2013-10-04 13:10:13

标签: bash

我将此作为“解锁”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'命令失败,我怎样才能继续执行第二步和其他命令?

1 个答案:

答案 0 :(得分:0)

我认为这就是你想要的:

# 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>>,而不是>>)到指定的文件。我假设你想要文件名中的当前时间戳,所以我将调用移至dateLOGTO的定义。