小编alt*_*dky的帖子

以秒为单位获取进程经过的时间

类似于如何检查进程运行了多长时间?,我正在尝试使用 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)

shell quoting

2
推荐指数
1
解决办法
8226
查看次数

标签 统计

quoting ×1

shell ×1