繁体   English   中英

Bash 命令替换为参数

[英]Bash Command Substitution as Parameter

在我和朋友们一起解决了一个具有挑战性的问题之后,我有了一个想法来进行盲目的命令替换。

这个带单引号的,

pid='1024 --help `touch /tmp/helw`' piduser=$(ps -ouser -p$pid h)

不创建文件 /tmp/helw

但是这个带双引号的,

pid="1024 --help `touch /tmp/helw`" piduser=$(ps -ouser -p$pid h)

创建文件。

我的问题是,如何进行命令替换而不让它在 pid - 变量中运行,但在 piduser 变量中运行。

首先,不要。 单独的动作可以而且应该是单独的动作。

touch /tmp/helw && ...

...但如果出于某种奇怪的原因这实际上是必要的(我无法想象为什么),在$(...)所做的任何事情都是一个子shell,可以是几个命令。

pid='1024 --help ' piduser=$( touch /tmp/helw && ps -ouser -p$pid h )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM