[英]Difference using ps|wc -l with or without bash variable
使用 bash,我想了解以下之間的不同輸出:
ps |wc -l
4
和
n=$(ps|wc -l)
echo $n
5
我猜$(ps|wc -l)
指令正在創建一個額外的子進程,但我真的不明白為什么將它添加到 ps 計數中
你說過: $( )
創建一個子進程。 因為不帶選項的命令ps
精確地列出了當前 shell 的所有子進程,所以你得到了多一行。 我通過用tee
替換wc
來檢查這一點:
$ ps | tee four
PID TTY TIME CMD
XXXXXXX pts/5 00:00:00 bash
YYYYYYY pts/5 00:00:00 ps
ZZZZZZZ pts/5 00:00:00 tee
$ : $(ps -H | tee five)
$ cat five
PID TTY TIME CMD
XXXXXXX pts/5 00:00:00 bash
YYYYYYY pts/5 00:00:00 bash
ZZZZZZZ pts/5 00:00:00 ps
ΩΩΩΩΩΩΩ pts/5 00:00:00 tee
我還將-H
傳遞給ps
以便它證明進程樹。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.