[英]Bash command substitution with extra whitespace: How to solve this?
我想用一些進程的編號代替它來找出其命令行,如下所示:
> 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
(開始有模式替換//
替換的模式所有出現的,如果你只使用/
只第一次出現將是替換-在您的示例中這不是問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.