繁体   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