我想写一个脚本,重新启动tomcat,但无法弄清楚我的问题是什么。
如果我在命令提示符处执行以下命令,它将正常运行:
/usr/local/etc/rc.d/tomcat7 start
但是,在myshell.sh脚本里面,我试图运行相同的命令,有和没有反引号,如下所示:
rc=`/usr/local/etc/rc.d/tomcat7 start` rc=/usr/local/etc/rc.d/tomcat7 start rc=$(/usr/local/etc/rc.d/tomcat7 start)
但没有任何反应,我没有得到任何错误输出。
它可以运行在命令提示符处,但不在我的shell脚本中?
提前致谢。
既然你说过在通过cron运行脚本时遇到了这个问题,这里有一些想法。
当通过cron运行脚本时,99%的问题是由于$PATH 。 cron使用的path非常less。 你确实指定了init脚本的完整path,所以我不希望这是问题。 你的脚本没有做任何事情吗?
另外,在脚本中,如果使用bash,则可以更改第一行(shebang)并添加第二行,如下所示
#!/bin/bash -x exec &>/tmp/script.log
这将在cron运行脚本时启用debugging。 它还会将脚本的所有输出logging到/tmp/script.log。 一旦你解决了这个问题,你可以恢复这个问题。
你为什么试图把这个分配给一个variables?
只是
/usr/local/etc/rc.d/tomcat7 start
在脚本中应该做的伎俩。 如果你需要这个命令的文本输出,你可以使用>运算符把它redirect到一个文件中,你可以使用$? 特殊variables来检查命令的返回码。