运行一个docker和一个命令使用python脚本

lmyy7pcs  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(126)

我必须运行一个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"不工作。
谢谢大家!

qncylg1j

qncylg1j1#

我认为“echo B”和第一个命令是在同一个shell中执行的,而第一个命令是在一个新的终端窗口中运行的。您应该使用“-x”标志,而不是在gnome-terminal中使用“-e”标志,它允许您在一个新的终端窗口中运行多个命令。

command = ['gnome-terminal', '-x', "bash -c 'sudo /home/mpark/Escriptori/SRTConverter/shell_docker.sh; echo b; exec $SHELL'"]
p = subprocess.Popen(command)

这将打开一个新的终端窗口,并在该窗口中运行命令"sudo /home/mpark/Escriptori/SRTConverter/shell_docker.sh""echo b"

相关问题