'!/ bin / sh -e'这行怎么办?

时间:2010-05-29 19:16:47

标签: linux shell

在我的服务器(linux)上的文件的开头,它位于/etc/init.d/文件夹中,我有这一行:

 !/bin/sh -e

这是什么意思,因为每次执行脚本的其余部分时它都能正常工作,除了显示错误:

 !/bin/sh not found

有什么想法吗?

3 个答案:

答案 0 :(得分:11)

该行定义了执行给定脚本的程序。 对于sh,通常该行应以#字符开头,如下所示:

#!/bin/sh -e

-e标志的长名称是errexit,导致脚本在第一个错误时立即退出。来自man sh的更详细说明:

  

如果不是交互式,则在任何未经测试的命令失败时立即退出。如果该命令用于控制ifelifwhileuntil,则认为命令的退出状态是显式测试的。或者如果该命令是&&|| operator的左手操作数。

答案 1 :(得分:9)

对我来说就像是搞砸了shebang line。你需要在'!'前加上一个'#'。

答案 2 :(得分:3)

 #!/bin/bash   

这是脚本中告诉系统使用bash shell执行脚本的第一行。