我试图提示用户是否要开始调试。我如何做到这一点没有添加-x
我自己只是在#!/bin/bash
或没有硬编码到脚本?
正如Benjamin W建议的那样,只需将set -x
包裹在一个条件中:
#!/bin/bash
read -p "Enable debugging? " debugmode
case "$debugmode" in
1|y|Y|yes|YES ) set -x ;;
esac
我经常使用的一个技巧是,在我的脚本顶部添加一些类似
的内容。[[ ${DEBUG_S:-no} == yes ]] && set -x
要运行程序P
并打开这种类型的调试,我执行
DEBUG_S=yes P
即使脚本不是P
本身,而是P
的子进程,它也会打开跟踪。