bash:显示执行的命令期望回声

时间:2011-05-10 14:51:55

标签: debugging bash command echo

我喜欢使用带有bash的-x开关来调试脚本。唯一的缺点是echo命令也会显示,这可能会产生许多不必要的重复:

#!/bin/bash
echo "Changing to /etc directory"
cd /etc

然后一次运行:

$ bash -x test.sh 
+ echo 'Changing to /etc directory'
Changing to /etc directory
+ cd /etc

我尝试使用bash -x test.sh | grep -v '+ echo'过滤掉,但它不起作用。

[问]我是否可以阻止-x同时显示echo个命令?

由于

1 个答案:

答案 0 :(得分:3)

您可以通过您选择的正则表达式引擎过滤它:

$ ./test.sh 2>&1 | awk '{if(!match($0, /^\+ echo/)){print $0}}'

$ ./test.sh 2>&1 | grep -v '^\+ echo'