关于 Bash 脚本中 Shebang 的趣事
![](/theme/default/default/images/main/eye-open.png)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
![](/theme/default/default/images/main/icon-jing.png)
脚本Shebang行的作用和用法
在类UNIX系统中,脚本的第一行通常包含shebang行,格式为 #! interpreter_path
,用以指定脚本的解释器路径。这告诉操作系统该文件需要通过解释器运行,而不是作为普通二进制文件执行。
当脚本中未包含shebang行,系统会默认使用系统默认的shell来执行脚本。默认的shell可以通过 echo $SHELL
命令查看。
通过修改脚本中的shebang行,可以改变执行脚本时使用的解释器。例如,使用 #!/bin/bash
指定bash解释器。脚本的执行权限可以通过 chmod +x
命令添加。
脚本的执行方式有几种,包括直接使用bash或sh命令执行,或者通过脚本的绝对/相对路径执行。当使用路径执行时,操作系统会读取shebang行以确定使用哪个解释器。如果shebang行指定的不是解释器而是其他命令,脚本将无法按预期执行。
总结,shebang行是UNIX系统脚本中指定解释器路径的重要行,如果脚本缺少shebang行,系统将使用默认解释器执行。使用绝对或相对路径执行脚本时,需要脚本有执行权限,并且shebang行需要正确指定解释器,否则可能会导致执行失败。
参考链接:https://linuskarlsson.se/blog/shebang-shenanigans/
感谢阅读,如果喜欢这篇文章,请支持作者。
想要了解更多内容?
![](/theme/default/default/images/main/icon-jing.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)
![](https://cdn.easycorp.cn/rongpm/upload/202312/f_39217d624bb2b42ce8f6322ebd7e573a.png)