尝试在两台机器上运行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);回声 “当下” ;网络
答案 0 :(得分:0)
你可能在这些机器上使用不同的shell,这解释了语法错误。您在代码中使用了子shell,它们可能在不同的shell上使用不同的语法。
另请注意,您将回显的stdout重定向到/ dev / null,因此无论如何都不会看到任何内容。
答案 1 :(得分:0)
无论登录shell是什么,您的cron作业都将在/bin/sh
下运行。
要从命令行运行此功能,只需先启动/bin/sh
(或者,如果您愿意,/bin/bash
)。