调用有三种方法:

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,代码如下:

 #!/bin/bash
#
A=
echo "ID1=$$"
export A
echo -e "A1=$A\n"
case $ in
--exec)
echo "use exec"
exec ./quote2.sh;;
--source)
echo "use source"
source ./quote2.sh;;
*)
echo "use fork"
./quote2.sh;;
esac
echo -e "\nID1=$$"
echo "A1=$A"

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

 #!/bin/bash
#
echo "A1=$A"
A=
echo "ID2=$$"
export A
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会返回继续执行。

linux中shell脚本引用另一shell脚本的更多相关文章

  1. linux 中的局部变量、全局变量、shell 变量的总结

    系统局部变量和全局变量  一.变量分类局部变量和环境变量,局部变量只适用于当前shell,而环境变量是全局的,它适用于所有当前shell以及其派生出来的任意子进程,有些变量是用户创建的,其他的则是专用 ...

  2. Linux中使用crontab命令定时执行shell脚本或其他Linux命令

    使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令.例如系统管理员安排一个备份任务使其每天都运行 如何往 cron 中添加一个作业? # crontab –e0 5 * ...

  3. 在linux中安装jdk以及tomcat并shell脚本关闭启动的进程

    在命令行模式中输入uname -a ,如下图,当界面展示i386就说明本linux系统为32版本,就在官网下载对应jdk版本,或者直接到我的网盘上下载http://pan.baidu.com/s/1c ...

  4. 分享一个linux中测试网站是否正常的shell脚本

    #! /bin/bash #Author=Harry CheckUrl() { #<==定义函数,名字为CheckUrl timeout=5 #<==定义wget访问的超时时间,超时就退出 ...

  5. linux中编写查看内存使用率的shell脚本,并以高亮颜色输出结果

    编辑脚本内容: #!/bin/bash MEMUSER=`free -m|grep -i mem|awk '{print $3/$2*100"%"}'` echo -e " ...

  6. linux中备份mysql数据库的一个shell脚本

    #!/bin/bash #FileName:select_into_bak.sh #Desc:Use select into outfile to backup db or tables #Creat ...

  7. 在Linux中以普通用户开机自动运行脚本程序

    测试环境:CentOS6.5 管理员:root 普通用户:test1 实现目标:在Linux启动时,以普通用户test1自动运行位于根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志 ...

  8. Linux中编写Shell脚本

    目录 Shell Shell脚本的执行 Shell脚本编写规范 Shell 中的变量 变量的算术运算 双小括号 (())  数值运算命令的用法 let 运算命令的用法 expr 命令的用法 br 命令 ...

  9. linux中的通配符、元字符、转义符

    linux中的通配符.元字符.转义符 linux中的通配符元字符转义符 shell命令的构成 通配符 元字符meta 转义符 example reference shell命令的构成 每条linux命 ...

随机推荐

  1. mysql有多大内存?能存多少数据?

    Mysql: MySQL 3.22 限制的表大小为4GB. MyISAM 存储引擎: 最大表尺寸增加到了65536TB(2567 – 1字节).由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通 ...

  2. 爬虫——xpath

    1.什么是xpath? Xpath,全称XML Path Language,即XML路径语言.它是一门在XML之后查找信息的语言,也同样适用于HTML文档的搜索.在做爬虫的时候,我们用XPath语言来 ...

  3. swagger 指定字段不显示到文档里

    Swagger UI 隐藏指定接口类或方法 - 宁静致远 - CSDN博客https://blog.csdn.net/lqh4188/article/details/53538201 swagger ...

  4. C#复习笔记(1)--C#开发的进化史

    前言:陆续使用C#已经有一年半的时间.中间做过一些应用,现在为了有更高的提升,决定重新看一遍C# in depth,并总结一些笔记. 一.从简单的数据类型开始 上面是C#1到C#4中的一部分演变历程. ...

  5. java.lang(StringBuffer)

    public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharS ...

  6. Windows 机器上面同时安装mysql5.6 和 mysql5.7 的方法

    1. 自己遇到的两个坑: . mysql 登录的时候 需要使用-P 来指定端口号 不然默认走 呢 . mysql 5.6 和 mysql 5.7 更改用户密码的命令不一样.. 我这边浪费了很长时间: ...

  7. MyBatis的XML中使用内部类的方式

    内部类需要使用$符号连接,而不是点.,如 com.pingan.job.openapi.model.SMSESBResult$ReceiveResult$ResultInfo 从CSDN论坛查到的. ...

  8. falsk 项目中日志设置

    app/__init__.py: 1 import logging from logging.handlers import RotatingFileHandler ''' 开发中使用DEBUG级别, ...

  9. python易混易乱(1)

    字典 基础操作 <1>keys my_dict = {"name":"zhangsan","age":18} res = my_ ...

  10. CSS 常见的8种选择器 和 文本溢出问题

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>c ...