[英]Linux shell strange situation
有誰知道為什么以下腳本有效?
#a-random-junk-string
echo HI
shell執行echo命令,並輸出HI。 我以為自從沒有“!” 在“#”之后,shell會出錯。
如果沒有#! 指定一個特定的解釋器, 內核不會攔截並使用指定的程序啟動它。
但是,當前shell仍然可以將其解釋為命令文件,這是您所看到的。
當要求shell運行一個打開可執行位的文件時,它將檢查該文件並確定它是否以shebang#開頭! 如果它確實那么它將執行該命令,該命令將從文件的其余部分獲取它的程序文本。
如果文件沒有以shebang開頭,那么shell將嘗試自己執行它。 這就是你正在發生的事情,shell將第一行解釋為注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.