子shell测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子shell测试相关的知识,希望对你有一定的参考价值。

pstree
echo $$ //当前进程pid
echo $PPID //父进程id
子进程测试:
新增文件:
[[email protected]]~ # vi bashpid.sh
#!/bin/bash
echo $BASHPID

//测试
[[email protected]]~ # echo $BASHPID  //当前shell
    6136  //结果
[[email protected]]~ # bash bashpid.sh
    6550  //结果
[[email protected]]~ # source ./bashpid.sh  //不开启shell子进程
    6136  //结果与当前shell结果一样
[[email protected]]~ # ./bashpid.sh  //开启子shell运行脚本
    6555
[[email protected]]~ # (echo $BASHPID)   //小括号表示进入子shell执行命令
    6558
[[email protected]]~ # { 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测试的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

Shell外壳的简易模拟

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

切换片段时如何维护子视图的状态?

python:子进程模块中带有shell = True或shell = False的stderr

求问关于linux子shell的问题!