尝试在两台机器上运行 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 ) ; 则回显 "present" ; fi
它在机器 1 上运行良好。但是在机器 2 (tcsh) 上出现以下错误-
if:表达式语法。
我如何在 tcsh 中纠正此问题?我需要从一个 crontab 文件运行它-
30 09 * * * if ( echo 13 | grep -w
date +%e
>/dev/null ) ; then echo "礼物" ;fi
你可能在这些机器上使用不同的shell,这可以解释语法错误。你在代码中使用子 shell,在不同的 shell 上可能有不同的语法。
另请注意,您将回显的 stdout 重定向到/dev/null,因此无论如何您都不会看到任何内容。
无论您的登录 shell 如何,您的 cron 作业都将在 /bin/sh
下运行。
要从命令行运行它,只需先启动/bin/sh
(或者,如果您愿意,/bin/bash