Command-Line
如何呼應一聲巨響!
echo
我試圖通過將內容寫入文件來創建腳本,而不是用編輯器打開它echo -e "#!/bin/bash \n /usr/bin/command args" > .scripts/command
輸出:_
bash: !/bin/bash: 找不到事件
我已將這種奇怪的行為與bang隔離開來。
$ echo ! ! $ echo "!" bash: !: event not found $ echo \#! #! $ echo \#!/bin/bash bash: !/bin/bash: event not found
- 為什麼bang會導致這個?
- bash 指的這些“事件”是什麼?
- 如何解決這個問題並將“#!/bin/bash”列印到螢幕或我的文件?
嘗試使用單引號。
echo -e '#!/bin/bash \n /usr/bin/command args' > .scripts/command echo '#!' echo '#!/bin/bash'
出現問題是因為 bash 正在搜尋其歷史記錄以查找 !/bin/bash。使用單引號可以避免這種行為。
正如Richm 所說,bash 正在嘗試進行歷史匹配。另一種避免它的方法是用 a 來逃避爆炸
\
:$ echo \#\!/bin/bash #!/bin/bash
雖然要注意在雙引號內,但
\
不會刪除:$ echo "\!" \!