我有一个脚本来测量某个命令执行的时间。
它需要“真实”time
命令,意思是一个二进制文件,例如 in /usr/bin/time
(因为 bash 内置没有-f
标志)。
下面是一个可以调试的简化脚本:
#!/bin/bash
TIMESEC=$(echo blah | ( /usr/bin/time -f %e grep blah >/dev/null ) 2>&1 | awk -F. '{print $1}')
echo ABC--$TIMESEC--DEF
if [ "$TIMESEC" -eq 0 ] ; then
echo "we are here!"
fi
Run Code Online (Sandbox Code Playgroud)
另存为“test.sh”并执行:
$ bash test.sh
ABC--0--DEF
we are here!
Run Code Online (Sandbox Code Playgroud)
所以它奏效了。
现在,让我们尝试通过在 bash 命令行中添加“-x”来调试它:
$ bash -x test.sh
++ echo blah
++ awk -F. '{print $1}'
+ TIMESEC='++ /usr/bin/time -f %e grep blah
0'
+ echo ABC--++ …
Run Code Online (Sandbox Code Playgroud)