bash脚本根据输入单词启动python脚本

bash脚本根据输入单词启动python脚本

我有两个 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

相关内容