【发布时间】:2020-01-03 14:01:39
【问题描述】:
在我和朋友们一起解决了一个具有挑战性的问题之后,我有了一个想法来做一个盲目的命令替换。
这个单引号,
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 变量中运行。
【问题讨论】:
-
你可能不得不使用
eval,但你为什么关心touch在piduser被定义之前运行? -
就此而言,您希望从
touch获得什么输出? -
投票结束,因为不清楚。你到底希望在这里完成什么?
-
应该是脚本测试。通常 piduser 正在脚本中执行。我只有通过从外部注入来影响 pid 的唯一方法。
-
我不希望有任何输出。但是这个必须从内部完美执行,所以我摆脱了它。欢迎任何像触摸这样的执行。它只是一个没有看到任何消息的测试。
标签: linux bash command substitution