2013-10-04 121 views
-2

我跑這是一個「解鎖」的bash腳本的一部分失敗,但是它的第一個命令失敗 -做命令2時,命令1在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'命令失敗?

+0

請參閱http://stackoverflow.com/questions/7251619/how-can-i-try-to-do-something-and-then-detect-if-it-fails-in-bash – Floris

+2

命令由' ;'按順序處理,即使第一個命令失敗,第二個命令也會執行。我認爲你沒有正確描述你的問題。 – KurzedMetal

回答

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>>,而不是>>)。我假設你想要文件名中的當前時間戳,所以我將電話移動到date以定義LOGTO

+0

感謝你們,我已經在/ $ CHUNK/chunklist /創建了一個'lock'文件,但是它並沒有被刪除,腳本也沒​​有說'/ home/boudiccas/bin/unlock:第36行:$ LOGTO:模棱兩可的重定向「。對不起:( – boudiccas

+0

)進一步調整並查看過去的工作腳本後,這個工作'LOGTO =「/ home/boudiccas/logs/unlock - $(/ bin/date +%Y%m%d).txt」我在正確的軌道chepner。:) – boudiccas