我在寫一個腳本,以便用戶知道哪些數據庫,他們可以在接下來的提示輸入會從服務器獲取數據庫名稱的列表:允許用戶^ C子進程,而不是整個腳本
echo "FETCHING DB NAMES... (^C to skip)"
ssh "[email protected]$SERV_A" "$remote_cmd" #returns space-delim db list
echo
printf "Which db do you want to import? >"
read db_name
#rest of script
它看起來像這樣給用戶:
FETCHING DB NAMES... (^C to skip)
db1 db2 personnel
Which db would you like to import? >
的問題是,獲取這些數據庫可以發生在不同的連接上需要1-10秒之間。如果用戶已經知道數據庫名稱,這可能令人沮喪。
當然,按^C
作爲提示表示會殺死整個腳本而不僅僅是ssh進程。有沒有一種方法可以編寫腳本,以便他們可以取消/跳過那個ssh過程?
預先感謝您。
編輯:它本身不一定是^C
,真的只是想讓用戶跳過正在運行的子進程。
我不會推薦使用'control-c'作爲跳過的方法,雖然使用's','q'或其他任何可能會好的方法... –
優秀點。我更新了這個問題。 –
@ JamesM.Lay已經做了幾個更新,以考慮輸入塊的初始答案,並跳過整個事情,如果用戶想跳過ssh部分 – hmedia1