【问题标题】:do command 2 when command 1 fails in bash [duplicate]当命令 1 在 bash 中失败时执行命令 2 [重复]
【发布时间】:2013-10-04 13:10:13
【问题描述】:

我将它作为“解锁”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”命令失败,我怎样才能让它继续执行第二个和更多命令?

【问题讨论】:

标签: bash


【解决方案1】:

我想这就是你想要的:

# 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” :第 36 行:$LOGTO:不明确的重定向'。对不起:(
  • 在进一步调整并查看过去的工作脚本后,这可以工作 LOGTO="/home/boudiccas/logs/unlock-$(/bin/date +%Y%m%d).txt" 感谢您让我走上正轨 chepner。 :)
猜你喜欢
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
相关资源
最近更新 更多