zoukankan      html  css  js  c++  java
  • 子shell

     

     

    1、在父shell中执行一个shell脚本,可以产生一个子shell

     测试环境:

    定义一个变量并输出

    1
    2
    3
    [dongzhi@iZ23eyxc0p2Z ~]$ STR=123
    [dongzhi@iZ23eyxc0p2Z ~]$ echo $STR
    123

     编写测试脚本并执行

    [

    1
    2
    3
    4
    5
    6
    7
    8
    dongzhi@iZ23eyxc0p2Z ~]$ cat test.sh
    #!/bin/bash
    echo $STR
    [dongzhi@iZ23eyxc0p2Z ~]$ ./test.sh
      
    [dongzhi@iZ23eyxc0p2Z ~]$ export STR
    [dongzhi@iZ23eyxc0p2Z ~]$ ./test.sh
    123

     子shell不能直接使用父shell中定义的变量,需export提升为环境变量

      

    2、在父shell中执行一条命令,在命令的末尾加上&  可以产生一个子shell

    1
    2
    3
    4
    5
    6
    7
    8
    [dongzhi@iZ23eyxc0p2Z ~]$ STR=123;STR=abc
    [dongzhi@iZ23eyxc0p2Z ~]$ echo $STR
    abc
    [dongzhi@iZ23eyxc0p2Z ~]$ STR=123;STR=abc&
    [1] 16467
    [dongzhi@iZ23eyxc0p2Z ~]$ echo $STR
    123
    [1]+ Done                    STR=abc

    定义一个变量STR赋值123,重新赋值abc,结果变量STR的值为abc,当把第二次赋值末尾加上&,变量STR的值没有变,说明第二次赋值没有 在当前shell,而是开启了一个子shell

      

    3、使用()可以产生一个子shell

    1
    2
    [dongzhi@iZ23eyxc0p2Z ~]$ STR=123&& (STR=abc) && echo $STR
    123

     同上面案例,()中变量赋值不能修改之前变量的值,也产生了子shell

      4、在父shell中执行带管道的命令

    1
    2
    [dongzhi@iZ23eyxc0p2Z ~]$STR=123|STR=456;echo $STR                 
    123

     打印子shell中的变量

    1
    2
    [dongzhi@iZ23eyxc0p2Z ~]$ STR=123|{ STR=456;echo $STR; }
    456
  • 相关阅读:
    jmeter性能测试指标
    jmeter中的几个重要测试指标释义
    jmeter2------常见元件
    jmeter1---------jmeter常用语和结果字段
    jmeter中默认语言的显示
    接口压测工具--jmeter(转)
    正则表达式(二)
    正则表达式(一)
    Python爬虫 爬取Web页面图片
    python 线程与进程
  • 原文地址:https://www.cnblogs.com/jinbiaof/p/6781189.html
Copyright © 2011-2022 走看看