두 개의 Python 스크립트(direct.py 및 nat.py)가 있고 내 입력에 따라 실행할 Python을 선택하는 bash 스크립트를 만들고 싶습니다.
또한 이러한 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 변경():
하위 프로세스 가져오기
subprocess.call("/home/VPN/vpn.sh", shell=True)
import atexit
atexit.register(변경)
def quit(param):
import sys
sys.exit()
답변3
의 경우 내장된 기능을 bash
고려할 수 있습니다.select
select R in nat direct quit; do [ $REPLY -ge 3 ] && break; echo python3 $R.py; done