[我跟朋友们一起解决了一个具有挑战性的问题后,我有了一个盲目替换命令的想法。
此单引号,
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 )