我有两个 python 脚本(direct.py 和 nat.py),我想制作一个 bash 脚本来根据我的输入选择要启动的 python。
另外,当手动运行这些 py 脚本时,我有输入选项(0...8、h 和 q)。当按“q”时,我有 sys.exit()。
例如:
./start.sh and output should be something like:
Chose your mode: (if type nat)
python3 nat.py
现在显示 python 脚本,如果按 q,返回 bash 选择选项。
答案1
设置无限循环并提示用户输入;如果输入与其中一个选项匹配,则(此处假装)运行该选项。如果他们输入了无效选项,请告诉他们;如果他们想退出,就让他们出去。一旦用户退出相应的python脚本(或输入无效选项),他们将返回到循环以再次选择选项。
#!/bin/sh
while :
do
printf 'Choose your mode (nat or direct) or q to quit: '
read REPLY
case $REPLY in
(nat) echo python3 nat.py
;;
(direct) echo python3 direct.py
;;
(q) break
;;
(*) echo Unknown option
;;
esac
done
答案2
谢谢您的回复。
实际上我是通过 py 脚本中的 atexit 完成的。
def change():
导入子进程
subprocess.call("/home/VPN/vpn.sh", shell=True)
导入 atexit
atexit.register(change)
def quit(param):
导入 sys
sys.exit()
答案3
对于bash
,您可能需要考虑select
内置的
select R in nat direct quit; do [ $REPLY -ge 3 ] && break; echo python3 $R.py; done