我想用一些进程的编号代替它来找出其命令行,如下所示:

> cat /proc/"`fuser /dev/ttyS0`"/cmdline
cat: /proc/5231 /cmdline: No such file or directory


但是fuser似乎为PID添加了一个额外的空格。任何想法如何做到这一点,否则解决?

预期的行为:我想使用fuser获取进程ID,并在第二步中显示/proc/<id>/cmdline

最佳答案

我认为echo \"`fuser /dev/ttyS0`\"会告诉您存在领先空间。如果将操作分为两个步骤,则可以执行以下操作

u=`fuser /dev/ttyS0`
cat /proc/${u// /}/cmdline


因此,首先将fuser的结果分配给变量u(仍将包含空格),然后删除u中的所有空格(以//开始模式替换将替换所有出现的模式,如果您仅使用/,则第一个匹配项将被替换-在您的示例中这不是问题)。

08-04 16:38