如何强制bash解释器?

时间:2011-03-10 12:09:12

标签: bash shell

我有两个简单的shell脚本在屏幕上运行我的solr安装并在崩溃时重启(有时会发生内存堆异常......)

startserver.sh

cd apache-solr/example
screen -S solrserver ./runner.sh
cd ../..

runner.sh

until java -jar -Xmx1024m start.jar; do
    echo "server stopped with exit code $? restart..." >&2
    sleep 10
done
到目前为止它们工作正常,但问题是,runner.sh必须对当前用户可执行。

所以这必须明确设置。

我拥有颠覆的一切,而且颠覆不够智能,无法管理访问权限。

所以我正在寻找一个解决方案来启动脚本而不是当前环境中的可执行脚本,而是将其传递给解释器。

类似的东西:

/bin/bash runner.sh

另一个别名应该只是. runner.sh(不一定是bash而是当前的用户shell) 我以前用perl和php脚本做过这个但不知何故它不起作用

我在亚马逊实例上有一个直接的ubuntu 10.04 lts服务器。我安装了apache2和一些apache模块,subversion和我最喜欢的命令行编辑器,但没有重大的系统调整。


它与/bin/bash的效果非常好我必定会遇到其他问题。遗憾。

2 个答案:

答案 0 :(得分:2)

在脚本的开头有一个shebang吗?

这样,当您启动脚本时,shell将知道该怎么做,在您的情况下,使用bash启动脚本。

在脚本的开头添加#!/bin/bash(第一行)。

答案 1 :(得分:1)

设置svn:executable属性