我想一些替代进程数,找出它的命令行如下:带额外空白的Bash命令替换:如何解决这个问题?
> cat /proc/"`fuser /dev/ttyS0`"/cmdline
cat: /proc/5231 /cmdline: No such file or directory
但它看起来像fuser
增加了一个额外的空白的PID。任何想法如何得到这个权利,或解决否则?
预期行为:我想使用fuser
获取进程ID,并在第二步显示/proc/<id>/cmdline
。
我想一些替代进程数,找出它的命令行如下:带额外空白的Bash命令替换:如何解决这个问题?
> 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
(如果仅使用/
只是第一次出现将被替换 - 在您的示例中这不会成为问题),则使用//
开始替换模式替换所有出现的模式。
如果你唯一的问题是有额外的空白,你可以通过一个'sed'替代去掉空白吗? – drewmm 2013-03-21 07:41:13
查看http://stackoverflow.com/questions/2854655/command-to-escape-a-string-in-bash – oikku 2013-03-21 07:41:30
但是在我的Debian Squeeze上,'fuser/dev/tty1'输出'/ dev/tty1:1038' :) – pynexj 2013-03-21 08:16:57