由于/ usr / bin / sh,Linux shell脚本错误输出

时间:2013-09-04 11:21:27

标签: linux shell unix install redhat

我正在尝试在redhat linux上运行shell脚本来安装应用程序。我收到一个错误说/usr/bin.sh:错误的解释器:没有这样的文件或目录。

在shell脚本中,脚本以:

开头
#!/usr/bin/shBUILD_ID=$1.....

我只是想了解线路开头的路径是什么?这是它寻找部署应用程序的目录吗?

由于

2 个答案:

答案 0 :(得分:3)

如果是shell脚本,第一行应该是#!/usr/bin/sh#!/bin/sh

如果第一行是#!/usr/bin/sh,那么请尝试查看/ usr / bin / sh是否存在而您是ls -l /usr/bin/sh

如果您找不到sh,那么您的系统状态不佳。

答案 1 :(得分:2)

#!是一个神奇的数字,告诉内核该文件是一个可删除的脚本。 紧跟在#!之后的字符串是调用解释器的路径,该解释器被调用以读取和执行文件的内容。在行

#!/ust/bin/shBUILD_ID=$1.....
解释者是/ust/bin/shBUILD_ID=$1....。解释器是直接读取的,没有shell变量替换,因此它将完全按照您的指定查找文件(包括等号,美元,点等)。如果找不到您指定的解释器,则默认shell会发出错误消息,而您的解释器看起来完全错误。试试#!/bin/sh。 如果解释器字符串后跟一个空格,然后是一些参数,那么这些参数在调用时会传递给interpeter。

参见例如http://bash.cyberciti.biz/guide/Shebang