错误与shell脚本

问题描述:

!#/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

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

你的家当是错误的。它应该是#!。另外, 做不打扰明确检查$?只是做:

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

这是我如何解决它:

!#/bin/bash 

ls; 
if [ $? -eq 0 ]