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