如何使用python基于不同的键盘事件执行不同的shell脚本(tes1.sh,test2.sh,..)。
如果用户按"1"
test1.sh
"2"
等,请执行test2.sh
我使用“raw-input”按下了键,并根据输入值使用subprocess.call调用了“test1.sh”或“test2.sh”。
如果按下不同的键,如何停止运行当前的shell脚本并运行新脚本。
答案 0 :(得分:1)
你可以在python3中使用subprocess.call
和raw_input()
用于python2和input
:
import subprocess
num=raw_input('print the number : ')
if num=='1' :
subprocess.call('test1.sh')
elif num == '2':
subprocess.call('test2.sh')
答案 1 :(得分:0)
使用subprocess.call(根据我对python docs的了解)这里不是一个好主意,因为你想在按键后杀死(停止)该进程...使用subprocess更好.Popen在这里,因为它在运行时不会阻止与进程的交互。 Subprocess.call等待程序完成,然后返回表示进程退出状态的代码。要调用和终止进程,您可以执行以下操作:
import os
import signal
import subprocess
process = subprocess.Popen('script.sh', stdout=subprocess.PIPE,
shell=False, preexec_fn=os.setsid)
os.killpg(process.pid, signal.SIGTERM)
我希望这会对你有所帮助,如果你不理解某些事情,请随意在评论中提问......
P.S。如果您不知道如何检查按键,请查看这部分文档:
https://docs.python.org/2/faq/library.html#how-do-i-get-a-single-keypress-at-a-time