假設你有一個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