我想一些替代進程數,找出它的命令行如下:帶額外空白的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