2016-02-04 46 views
0

有沒有辦法讓下面的bash腳本在之前顯示它的選擇菜單而不是之後的兩個提示 有沒有在這個Bash腳本菜單中顯示提示的方法?

謝謝。

#!/usr/bin/env bash 

PS3='Copy database to which server? ' 
options=("debug" "dev" "prod" "Quit") 
select server in "${options[@]}" 
do 
    case $server in 
     "debug") 
      break 
      ;; 
     "dev") 
      break 
      ;; 
     "prod") 
      break 
      ;; 
     "Quit") 
      echo "Quitting" 
      exit 1 
      ;; 
     *) echo "Invalid option";; 
    esac 
done 

PS3='Reuse existing user data or get fresh data? ' 
options=("existing" "fresh" "Quit") 
select data in "${options[@]}" 
do 
    case $data in 
     "existing") 
      break 
      ;; 
     "fresh") 
      break 
      ;; 
     "Quit") 
      echo "Quitting" 
      exit 1 
      ;; 
     *) echo "Invalid option";; 
    esac 
done 

echo "You chose "$server" and "$data 
exit 1 
+0

只是改變'PS3 =''到回聲'?祝你好運。 – shellter

回答

0

是...你可以在任何時候echo寫文字給用戶:

echo 'Copy database to which server?' 
options=("debug" "dev" "prod" "Quit") 
select server in "${options[@]}" 
do 
    case $server in 
     "debug") 
      break 
      ;; 
     "dev") 
      break 
      ;; 
     "prod") 
      break 
      ;; 
     "Quit") 
      echo "Quitting" 
      exit 1 
      ;; 
     *) echo "Invalid option";; 
    esac 
done 

這將使你:

Copy database to which server? 
1) debug 
2) dev 
3) prod 
4) Quit 
#? 
+0

是的,我想到了,但我不喜歡「#?」提示。這有點醜。不幸的是,我的Bash功夫很弱。 – William

+0

使用'PS3 ='>''將提示設置爲你想要的然後 –

+0

Gotcha。謝謝! – William