请使用递增值解释此问题,我们有下一个名为test.sh的文件
#!/bin/bash
ps aux | grep test.sh -c
echo $(ps aux | grep test.sh -c)
然后运行它
$ ./test.sh
2
3
我知道grep slice后有两行(test.sh为1,grep为2),为什么3进来?感谢
答案 0 :(得分:1)
在第二种情况下,您得到3
,因为第二个命令$(...)
(即命令替换)在子shell 中执行。
来自manual:
命令替换,用括号分组的命令和 异步命令在子shell环境中调用 shell环境的重复,......