我必须运行一个docker,然后使用python脚本在workdir中运行一个命令。
我试着这样做:
command = ['gnome-terminal', '-e', "bash -c 'sudo /home/mpark/Escriptori/SRTConverter/shell_docker.sh; echo b; exec $SHELL'"]
p = subprocess.Popen(command)
其中,"sudo/home/mpark/Escriptor/SRTConverter/shell_docker. sh"是一个shell脚本,其中Docker以root权限运行
第一个命令"sudo/home/mpark/Escriptori/SRTConverter/shell_docker.sh"工作正常,但必须在容器内运行的第二个命令"echo b"不工作。
谢谢大家!
1条答案
按热度按时间qncylg1j1#
我认为“echo B”和第一个命令是在同一个shell中执行的,而第一个命令是在一个新的终端窗口中运行的。您应该使用“-x”标志,而不是在gnome-terminal中使用“-e”标志,它允许您在一个新的终端窗口中运行多个命令。
这将打开一个新的终端窗口,并在该窗口中运行命令
"sudo /home/mpark/Escriptori/SRTConverter/shell_docker.sh"
和"echo b"
。