可以使用select
內置實現這一目標,
PS3='Select the platform to use: '
select choice in $(seq 3)
do
[[ $choice -eq 1 ]] && echo "Linux PC based"
[[ $choice -eq 2 ]] && echo "ABC 1"
[[ $choice -eq 3 ]] && echo "XYZ 4"
break
done
確保export
在~/.bashrc
的PS3
價值,使其永久化。另外值得加點,select
不是POSIX
兼容選項,可能無法跨平臺移植。
您可以在單一腳本中調用此方法並在另一個腳本中調用的方式是將上述代碼包裝在函數中,並將其嵌入到另一個文件中。在原始腳本上,例如說script1.sh
,在調用腳本函數包裝爲
#!/bin/bash
function optselect() {
arg1=$1
select arg1 in $(seq 3)
do
[[ $arg1 -eq 1 ]] && echo "Linux PC based"
[[ $arg1 -eq 2 ]] && echo "ABC 1"
[[ $arg1 -eq 3 ]] && echo "XYZ 4"
break
done
}
然後例如說script2.sh
#!/bin/bash
source ./script1.sh
optselect 1 # Calling the script with argument '1'
感謝您的幫助。但是,我需要從另一個腳本調用此腳本。我需要從調用腳本 –
@SathishKumar將值傳遞給'SELECT':將其作爲參數傳遞給其他腳本,並使用'$(seq 3)'中的$ select $ 1,希望你能做到這一點 – Inian
謝謝。讓我試試 –