簡體   English   中英

用額外的空格替換Bash命令:如何解決這個問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM