我正在尝试创建一个bash脚本,它运行一个带有pdb跟踪集的python3脚本。因此,在我的bash脚本中,我有以下几行:
python3 path/to/my_script.py
n
我想让bash运行python脚本,然后打开python调试器。然后,bash脚本将向pdb shell发送键'n',以便pdb执行python脚本中的第一行。
脚本没有按预期工作,bash等待python脚本完成(或退出),然后在命令行中执行“n”,这将打开node。
我想这可能是pdb shell特有的问题,所以我尝试在bash中执行以下命令:
python3
print("Hello")
但是,我们再次观察到脚本创建了python3 shell,然后等待shell退出,然后才在终端中执行print("Hello")
。我知道我可以在这种情况下使用python3 -c
,但这并不能解决在运行脚本的上下文中将命令传递给pdb shell的情况。
是否有办法将“n”命令发送到Python脚本生成的PDB shell?
2条答案
按热度按时间uxh89sit1#
你的代码将尝试运行两个命令。首先,它将运行你的python脚本,然后它将尝试运行一个名为
n
的命令。假设你的脚本需要你从stdin读取,你可以做以下之一:使用herestring:
python3 path/to/my_script.py <<< "n"
使用pipeline:
echo "n" | python3 path/to/my_script.py
Echo并不是您可以使用的唯一命令,您还可以使用printf
甚至yes
。fbcarpbf2#
您可以使用协处理从
pdb
发送和接收。