Linux
什麼是“-bash:!”:未找到事件”
嘗試在 bash shell 下執行以下命令
echo "Reboot your instance!"
在我的安裝中:
root@domU-12-31-39-04-11-83:/usr/local/bin# bash --version GNU bash, version 4.1.5(1)-release (i686-pc-linux-gnu) Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. root@domU-12-31-39-04-11-83:/usr/local/bin# uname -a Linux domU-12-31-39-04-11-83 2.6.35-22-virtual #35-Ubuntu SMP Sat Oct 16 23:57:40 UTC 2010 i686 GNU/Linux root@domU-12-31-39-04-11-83:/usr/local/bin# echo "Reboot your instance!" -bash: !": event not found
誰能解釋一下什麼是“bash 事件”?我以前從未聽說過這個概念。另外,我應該如何輸出“!” 在句末?
您可以使用 關閉歷史記錄替換
set +H
。
!
是 bash 的一個特殊字元,用於引用之前的命令;例如,!rm
將呼叫並執行以字元串“rm”開頭的最後一個命令,並且
!rm:p
將召回但不執行以字元串“rm”開頭的最後一個命令。bash 將驚嘆號解釋
echo "reboot your instance!"
為“在此處替換以驚嘆號後面的字元開頭的最後一個命令”,並向您抱怨它在您的歷史記錄中找不到以單個開頭的事件(命令)雙引號。嘗試
echo reboot your instance\!
從 bash 中保護(轉義)驚嘆號。