首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有命令链接$(cmd2 1\cmd2 2)的bash叉子进程

带有命令链接$(cmd2 1\cmd2 2)的bash叉子进程
EN

Stack Overflow用户
提问于 2017-09-28 18:15:20
回答 1查看 146关注 0票数 1

问题

我在bash脚本文件(aaaa.sh)中编写了一些命令行,比如output=$(cmd1|cmd2),并找到了生成的子进程。

文件aaaa.sh中的代码

代码语言:javascript
复制
echo "The name of this file is $(basename $0)."
echo "The pid of this program is $$."

echo -e '\n---- 0 ----'
echo -e 'CMD: ps -ef | grep "aaaa.sh" | grep -v grep'
ps -ef | grep "aaaa.sh" | grep -v grep

echo -e '\n---- 1 ----'
echo -e 'CMD: ps -ef | grep "aaaa.sh" | grep -v "bbbb" | grep -v grep'
ps -ef | grep "aaaa.sh" | grep -v "bbbb" | grep -v grep

echo -e '\n---- 2 ----'
echo -e 'CMD: pgrep -a "aaaa.sh" | grep -v "bbbb"'
pgrep -a "aaaa.sh" | grep -v "bbbb"

echo -e '\n---- 3 ----'
echo -e 'CMD: pgrep -a "aaaa.sh" | grep -v "$$"'
pgrep -a "aaaa.sh" | grep -v "$$"

echo -e '\n---- 4 ----'
echo -e 'CMD: output=$(ps -ef | grep "aaaa.sh" | grep -v "bbbb" | grep -v grep)'
output=$(ps -ef | grep "aaaa.sh" | grep -v "bbbb" | grep -v grep)
echo -e "$output"

echo -e '\n---- 5 ----'
echo -e 'CMD: output=$(ps -ef | grep "aaaa.sh" | grep -v "$$" | grep -v grep)'
output=$(ps -ef | grep "aaaa.sh" | grep -v "$$" | grep -v grep)
echo -e "$output"

echo -e '\n---- 6 ----'
echo -e 'CMD: output=$(pgrep -a "aaaa.sh" | grep -v "bbbb")'
output=$(pgrep -a "aaaa.sh" | grep -v "bbbb")
echo -e "$output"

echo -e '\n---- 7 ----'
echo -e 'CMD: output=$(pgrep -a "aaaa.sh" | grep -v "$$")'
output=$(pgrep -a "aaaa.sh" | grep -v "$$")
echo -e "$output"

echo -e '\n---- 8 ----'
echo -e 'CMD: output=$(pgrep -a "aaaa.sh")'
output=$(pgrep -a "aaaa.sh")
echo -e "$output"

输出

输出

问题

在4,5,6和7中产生了一个子进程,为什么?

EN

回答 1

Stack Overflow用户

发布于 2017-09-28 21:09:25

那可能是因为

$(.)

引用bash手册页:

命令替换允许命令的输出替换命令名。有两种形式:$(命令)或command。Bash执行扩展的方法是在子subshell环境中执行命令,并将命令替换为命令的标准输出,删除所有尾随的换行符。嵌入的换行符不会被删除,但是它们可以在分词过程中被删除。

因此,您实际上看到了为执行命令而创建的子see。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46475802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档