我意外地用$!
而不是#!
啓動了一個bash腳本,並且出現了一些非常奇怪的行爲。我試圖弄清楚發生了什麼事。
如果你試試這個腳本:
$!/bin/bash
echo Hello world!
您將獲得以下行爲:
$ chmod +x hello
$ ./hello
[nothing happens, get prompt back]
$ exit
exit
Hello world!
$
所以它看起來像這樣發生了:
- 一個新的bash shell產生。
- 退出後,執行腳本的其餘部分。
這是怎麼回事?發生什麼事情?如果沒有#!
,shell如何知道使用bash
來解釋腳本?
顯然這是「滿足我的好奇心」而不是「解決我的問題」的問題。谷歌搜索不會產生太多,可能是因爲#!
和$!
查詢不會讓谷歌機器人快樂。