请用递增值来解释这个问题,我们有下一个名为 test.sh 的文件
#!/bin/bash
ps aux | grep test.sh -c
echo $(ps aux | grep test.sh -c)
然后运行它
$ ./test.sh
2
3
我知道 grep slice 之后有两行(1 带有 test.sh,2 带有 grep),为什么 3 进来?谢谢
您进入3
第二种情况是因为第二个命令$(...)
(即命令替换)在subshell中执行。
从手册:
命令替换、用括号分组的命令和异步命令在作为 shell 环境副本的子 shell 环境中调用,...