2015-03-30 65 views
-2

基本上我想在用戶輸入一個以數字開頭的字符串進入bash shell並點擊返回時運行腳本。我不確定這是否可能。當數字輸入到bash shell中時,是否有任何方法來執行腳本?

+0

具體的數字?任何數字?所有數字? – 2015-03-30 20:00:01

+0

這是可能的。我有我的bin目錄中稱爲2,3,4,5的命令,產生2,3,4,5列的輸出。命令名以數字開始是完全可能的:'2u','4me'等等完全可以作爲命令名。 – 2015-03-30 20:06:27

+1

您可以在bash中編寫菜單並打開「讀取選擇」後輸入的值。 – 2015-03-30 20:07:53

回答

0

如果您的bash版本至少爲v4.0,您可以定義功能command_not_found_handle。在bash放棄嘗試查找命令之前,此函數將被稱爲最後的手段。

該函數的參數恰好是命令名稱及其參數(即$1是該命令)。

一個簡單的例子:

command_not_found_handle() { 
    if [[ $1 = [0-9]* ]]; then 
     echo You typed the numeric command: "$1" 
    else 
     echo "$0: $1 not found" 
     return 127 
    fi 
} 

zsh當量command_not_found_handler。我不知道是否存在最後的的哲學意義。

如果你不能處理命令,你應該確保退出函數返回127,因爲這是bashzsh在沒有not_found句柄(r)時發出一個沒有響應的命令的方式。

+0

這正是我所需要的。我想我需要升級我的bash。謝謝。 – user1888580 2015-04-01 12:13:37