我正在尝试在redhat linux上运行shell脚本来安装应用程序。我收到一个错误说/usr/bin.sh:错误的解释器:没有这样的文件或目录。
在shell脚本中,脚本以:
开头#!/usr/bin/shBUILD_ID=$1.....
我只是想了解线路开头的路径是什么?这是它寻找部署应用程序的目录吗?
由于
答案 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。