从外壳运行 IF 语句时出错



尝试在两台机器上运行 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

)。

相关内容

  • 没有找到相关文章