类似于如何检查进程运行了多长时间?,我正在尝试使用 BusyBox 和sh(不是bash)在嵌入式 Linux 系统中以秒为单位获取进程的经过时间。不同之处在于我希望它以纯秒为单位,而不是 mm:ss 格式。
我可以从结果中解析它,ps但无法expr从 mm:ss 转换为秒。使用set -vx来帮助调试,我可以看到有效的expr命令,但它失败,出现语法错误。复制和粘贴它工作正常。
运行此添加诊断后:
root@embedded:~# set -vx
Run Code Online (Sandbox Code Playgroud)
我输入:
root@embedded:~# $(/opt/bin/busybox ps -o pid,etime,time | grep 1156 | sed "s/ *[0-9]\+ \+\([0-9]\+\):\([0-9]\+\) .*/\/opt\/bin\/busybox expr \1 \\\* 60 + \2/")
Run Code Online (Sandbox Code Playgroud)
并得到这个回应:
$(/opt/bin/busybox ps -o pid,etime,time | grep 1156 | sed "s/ *[0-9]\+ \+\([0-9]\+\):\([0-9]\+\) .*/\/opt\/bin\/busybox expr \1 \\\* 60 + \2/")
+ /opt/bin/busybox ps -o pid,etime,time
+ grep 1156
+ sed …Run Code Online (Sandbox Code Playgroud)