在 bash 脚本中执行类似操作时:
#!/bin/bash
ls & echo $!
pidls
将打印到控制台。但是当我把它改成这样时:
#!/bin/bash
command="ls & echo $!"
eval "$command"
它将不再起作用。为什么会这样,是否有解决方法?
在您的命令结束时在后台运行您的命令eval
:
#!/bin/bash
cmd="ls > /dev/null &"
eval "$cmd"
eval_pid=$!
bash_pid=$$
echo bash_pid: ${bash_pid}, eval_pid: ${eval_pid}
输出:
bash_pid: 25926, eval_pid: 25927
获取由eval
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句