zoukankan      html  css  js  c++  java
  • linux中shell脚本引用另一shell脚本

    调用有三种方法:

    1、fork:不同的shell,调用后返回父shell,子shell从父shell中继承变量,但子shell的变量不会带回父shell,直接用path/to/file.sh调用;

    2、exec:同一个shell,调用后不返回,用exec path/to/file.sh调用;

    3、source:同一个shell,调用后返回,用source path/to/file.sh调用

    第一个脚本quote1.sh,代码如下:

     1 #!/bin/bash
     2 #
     3 A=1
     4 echo "ID1=$$"
     5 export A
     6 echo -e "A1=$A
    "
     7 case $1 in
     8         --exec)
     9                 echo "use exec"
    10                 exec ./quote2.sh;;
    11         --source)
    12                 echo "use source"
    13                 source ./quote2.sh;;
    14         *)
    15                 echo "use fork"
    16                 ./quote2.sh;;
    17 esac
    18 echo -e "
    ID1=$$"
    19 echo "A1=$A"

    第二个脚本quote2.sh,代码如下:

    1 #!/bin/bash
    2 #
    3 echo "A1=$A"
    4 A=2
    5 echo "ID2=$$"
    6 export A
    7 echo "A2=$A"

    # chmod +x quote*  //添加权限

    # cd /root/test/script/  //进入文件所在目录

    1、选择fork方法

    # ./quote1.sh  //无参数执行脚本1

     两个脚本的进程ID号不同,所以在不同的shell下执行的,但调用完quote2.sh会返回继续执行。

    2、选择exec方法

    # ./quote1.sh --exec  //观察exec执行结果

    两个进程ID号相同,所以是在同一shell下执行,但调用完quote2.sh就会结束。

    3、选择source方法

    # ./quote.sh --source  //观察source执行结果

    两个进程ID号相同,所以是在同一shell下执行,但调用完quote2.sh会返回继续执行。

  • 相关阅读:
    webpack 添加 jquery 插件
    openldap安装配置
    生成ssl证书
    vyos (三) HA
    vyatta的fork开源版本
    vyos (一) 基础配置
    iptable软路由
    keepalive实现web服务器active/passive
    docker学习(二)
    docker学习(一)
  • 原文地址:https://www.cnblogs.com/houyongchong/p/7904290.html
Copyright © 2011-2022 走看看