2013-04-09 158 views
0
!#/bin/bash 

    svnadmin dump /path/to/repo | gzip -9 > /path/to/backup.bak-$(date  +"%d\%m\%Y--%T").dump.gz 
if (`echo $?` -eq 0) 
then 
    echo "hello world" | mail -s "a subject" [email protected] 
else 
    echo "sorry, no way out" | mail -s "a subject" [email protected] 
exit 1 
fi 

沒有與任何幫助表示讚賞問題錯誤與shell腳本

編輯。由於 輸出我得到的是else部分「對不起,沒有出路!但我希望得到的是一個Hello World的dump命令完美的作品

+0

你能更具體嗎?什麼是錯誤? – 2013-04-09 06:20:05

+0

@Allendar所做的編輯刪除了實際的問題。 – adrianp 2013-04-09 08:34:00

+0

@BalusC點指出:) – rahul 2013-04-16 06:50:55

回答

0

IF條款應該是:if [ $? -eq 0 ]注意周圍的方括號和空格

+1

實際上,它應該是'if [$? -eq 0]'。不需要'echo'。 – 2013-04-09 06:20:09

+0

感謝@adrianp它的工作! :) !#/ bin/bash ls; if [$? -eq 0] – rahul 2013-04-09 08:41:36

+0

其實'cmd;如果[$? -eq 0];那麼......幾乎總是應該重寫'如果cmd;那麼...' – tripleee 2013-04-10 05:16:31

-1

你的家當是錯誤的。它應該是#!。另外, 做不打擾明確檢查$?只是做:

if ls; then 
     ... 
else 
     ... 
fi 
+0

嗨,我更喜歡使用相同的結構。現在發生的事情是,即使ls命令起作用,我也會將其他部分消息發送給我的郵件。 – rahul 2013-04-09 06:16:33

+0

「同樣的結構」是什麼意思?你的意思是不正確的語法? – 2013-04-09 06:17:07

+0

其實我有一些svnbackup的命令,我只想在這個命令成功時執行這個郵件腳本 svnadmin dump/path/to/repo/| gzip -9>/path/to/backup - $(date +「%d \%m \%Y - %T」)。dump.gz – rahul 2013-04-09 08:35:24

0

這是我如何解決它:

!#/bin/bash 

ls; 
if [ $? -eq 0 ]