假设你有一个bash脚本B,你从另一个bash脚本A中获取.B有一堆变量和函数定义。 A是主要的驱动程序脚本。你需要A和B之上的#!/ bin/bash行吗?如果你这样做会发生什么,如果你不这样做?你是否需要在所有bash脚本中使用shebang?
回答
shebang只对那些脚本是强制性的,这些脚本应由操作系统以与二进制可执行文件相同的方式执行。如果你用另一个脚本来源,那么shebang被忽略。
另一方面。如果脚本应该是来源的,那么按照惯例,不要在开始时放置任何形状。
如果直接将脚本作为可执行文件运行(例如使用命令./script.sh
),则会使用shebang。在这种情况下,它会告诉操作系统运行哪个可执行文件。
这不是必需的,如果您例如编写bash ./script.sh
或来源脚本,则不起作用。
......或者当你编写脚本时:) –
如果你已经在bash提示符下,它也不是必需的 - 它假定脚本是bash(并且其他shell通常假定脚本也是为它们设计的) –
您应该在所有脚本中使用shebang,特别是那些使用任何非sh兼容功能的脚本。
在Debian中,例如,默认shell是破折号(而不是bash)。如果你使用bash-only特性并且不指定这个脚本应该被bash解释,它甚至可能在linux上失败。它几乎肯定会在Solaris或HP-UX上发生故障。
如果您的文件只是由其他脚本来源,那么您可以省略shebang行但不设置可执行权限。对于这样的文件也是很好的保持/ bin/sh兼容性。我们强烈建议您阅读DashAsBinSh。
- 1. 是否所有的脚本用户都需要安装Powershell?
- 2. 在bash脚本中需要帮助
- 3. Bash脚本帮助需要
- 4. BASH需要脚本帮助
- 5. 我们是否需要为所有页面导入YUI脚本?
- 6. 脚本是否使用与缺省shell相关的shebang行?
- 7. 创建的cronjob使用bash脚本 - 需要出现在Plesk中
- 8. 你需要在浏览器中使用脚本吗?
- 9. qsub正在csh中执行我的bash脚本尽管shebang
- 10. 如何处理在安装脚本中有shebang行的脚本?
- 11. 使用os.system(“bash code”)在Python脚本中调用bash命令是否很好用?
- 12. 在bash脚本中需要帮助从awk引用转义
- 13. 需要sudo密码的Bash脚本
- 14. bash脚本可能需要root权限
- 15. Bash脚本:不需要的输出
- 16. 需要一个快速bash脚本
- 17. bash脚本,需要家庭作业
- 18. 执行Bash脚本需要的帮助
- 19. 需要我的bash脚本帮助
- 20. bash脚本给不需要的输出
- 21. 需要帮助笑着bash脚本
- 22. Bash脚本获取所需的扩展名的所有文件
- 23. 使用qsub在另一个bash脚本中调用bash脚本
- 24. 如果我使用requirejs加载脚本,是否需要连接脚本
- 25. 是否需要保护所有属性?
- 26. 调用MPI_Comm_spawn时,所有进程是否需要所有数据?
- 27. Shebang命令从现有脚本调用脚本 - Python
- 28. 需要使用bash命令的python脚本帮助
- 29. 是否需要通过php脚本备份mysql表的所有权限
- 30. 是否需要在onActivityResult()中使用super.onActivityResult()?
你可以在这里得到答案,但你试过吗? – jman