如果我输入bash -x选项,它将显示所有行.但脚本将执行正常.
我该如何逐行执行?我可以看到它是否做了正确的事情,或者我中止并修复了这个bug.read每一行都有相同的效果.
org*_*hup 111
你不需要在每行中添加一个读取,只需在你的bash脚本中添加如下的陷阱,它就会产生你想要的效果,例如.
#!/usr/bin/env bash
set -x
trap read debug
< YOUR CODE HERE >
Run Code Online (Sandbox Code Playgroud)
Works,只是用bash v4.2.8和v3.2.25测试它.
改良版
如果您的脚本正在从文件中读取内容,则上面列出的内容将不起作用.解决方法可能类似于以下示例.
#!/usr/bin/env bash
echo "Press CTRL+C to proceed."
trap "pkill -f 'sleep 1h'" INT
trap "set +x ; sleep 1h ; set -x" DEBUG
< YOUR CODE HERE >
Run Code Online (Sandbox Code Playgroud)
要停止脚本,在这种情况下,您必须从另一个shell中删除它.
ALTERNATIVE1
如果您只想等待几秒钟,然后再继续执行脚本中的下一个命令,则以下示例可能对您有用.
#!/usr/bin/env bash
trap "set +x; sleep 5; set -x" DEBUG
< YOUR CODE HERE >
Run Code Online (Sandbox Code Playgroud)
我在trap命令中添加set + x和set -x以使输出更具可读性.