用额外的空格替换Bash命令:如何解决这个问题?

时间:2013-03-21 07:15:59

标签: linux bash

我想用一些进程的号码替换它的命令行,如下所示:

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

但看起来fuser为PID添加了额外的空格。知道如何做到这一点,或解决其他方法吗?

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

1 个答案:

答案 0 :(得分:0)

我认为echo \"`fuser /dev/ttyS0`\"会告诉你有一个领先的空间。如果您分两步拆分操作,则可以执行以下操作

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

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