假設我在bash型saklfjsklj,我得到:有沒有一種方法來捕獲用戶命令bash哪些沒有找到,並用它做什麼?
bash: saklfjsklj: command not found
有沒有一種方法,以攔截和執行腳本?
假設我在bash型saklfjsklj,我得到:有沒有一種方法來捕獲用戶命令bash哪些沒有找到,並用它做什麼?
bash: saklfjsklj: command not found
有沒有一種方法,以攔截和執行腳本?
bash有一個command_not_found_handle
回調:http://www.gnu.org/software/bash/manual/bashref.html#Command-Search-and-Execution
有在this answer on askubuntu.com信息關於使用默認搞亂。
定義一個名爲command_not_found_handle
的函數。命令和參數將作爲參數傳遞給函數。
$ command_not_found_handle() { echo "[email protected]"'!'; }
$ zounds
zounds!
從bash的手冊頁,
*如果搜索不成功,名爲command_not_found_handle定義的shell函數shell搜索。如果該函數存在,則使用原始命令和原始命令的參數作爲其參數來調用該函數,並且函數的退出狀態將成爲shell的退出狀態。如果沒有定義的功能,殼打印錯誤消息,並返回127 *
我還發現這篇文章關於這個問題的退出狀態,