从shell运行IF语句时出错

时间:2012-11-13 16:05:21

标签: bash shell unix if-statement tcsh

尝试在两台机器上运行IF语句 -

1.SunOS 5.8 Generic_Virtual sun4u sparc SUNW,Sun-Fire-V240(bash)

2.SunOS 5.10 Generic_127112-11 i86pc i386 i86pc(tcsh)

我从shell运行的命令 -

  

if(echo 13 | grep -w date +%e> / dev / null);然后回应“现在”;网络

它在机器1上运行正常。但是在机器2(tcsh)上得到以下错误 -

  

if:Expression Syntax。

如何在tcsh中更正此问题?我需要从crontab文件中运行它 -

  

30 09 * * * if(echo 13 | grep -w date +%e> / dev / null);回声   “当下” ;网络

2 个答案:

答案 0 :(得分:0)

你可能在这些机器上使用不同的shell,这解释了语法错误。您在代码中使用了子shell,它们可能在不同的shell上使用不同的语法。

另请注意,您将回显的stdout重定向到/ dev / null,因此无论如何都不会看到任何内容。

答案 1 :(得分:0)

无论登录shell是什么,您的cron作业都将在/bin/sh下运行。

要从命令行运行此功能,只需先启动/bin/sh(或者,如果您愿意,/bin/bash)。