子shell測試
阿新 • • 發佈:2018-08-11
腳本 執行命令 str local bash source world 表示 shel pstree
echo $$ //當前進程pid
echo $PPID //父進程id
子進程測試:
新增文件:
[world@localhost]~ # vi bashpid.sh
#!/bin/bash
echo $BASHPID
echo $$ //當前進程pid
echo $PPID //父進程id
子進程測試:
新增文件:
[world@localhost]~ # vi bashpid.sh
#!/bin/bash
echo $BASHPID
//測試 [world@localhost]~ # echo $BASHPID //當前shell 6136 //結果 [world@localhost]~ # bash bashpid.sh 6550 //結果 [world@localhost]~ # source ./bashpid.sh //不開啟shell子進程 6136 //結果與當前shell結果一樣 [world@localhost]~ # ./bashpid.sh //開啟子shell運行腳本 6555 [world@localhost]~ # (echo $BASHPID) //小括號表示進入子shell執行命令 6558 [world@localhost]~ # { echo $BASHPID; } //花括號表示在當前shell執行命令 6136 //結果與當前shell結果一樣
變量只能往下傳、繼承,不能往上傳、繼承
#name=parent;(echo "1:$name";name=son;echo "2:$name");echo "3:$name" //小括號 () 開啟子shell 表示進入子shell
1:parent
2:son
3:parent
花括號{}不開啟子shell,shell編程中可能用到。
name=parent;{ echo "1:$name";name=son;echo "2:$name"; };echo "3:$name" //花括號不進入子shell
1:parent
2:son
3:son
子shell測試