当在bash脚本中做这样的事情时:
#!/bin/bash ls & echo $!
ls
的pid将被打印到控制台上。 但是当我改变它到这个:
#!/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
启动的进程的pid。