首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Shell脚本调用另一个脚本的三种方法

bash #------------------ #@file:first.sh #------------------ echo 'your are in first file' 如何在其它Shell脚本调用...使用sh命令来调用另外的脚本和前面两种方法有着本质的区别。使用sh命令则会开启新的Shell进程来执行指定的脚本,这样的话,父进程中的变量在子进程中就无法访问。.../bin/bash echo 'your are in first file' echo 'second:' $second second.sh内容,通过上面介绍的三种方法来调用first.sh,看看对...(3)全局变量:在脚本中定义,仅在当前Shell脚本中有效,其他Shell脚本进程不能访本,其作用域定义的位置开始,到脚本结束或被显示删除的地方为止。...注意,全局变量既可以在Shell函数内定义,也可以在shell函数外定义,因为shell函数内定义的变量默认为global,且作用域“函数被调用时执行变量定义的地方”开始,到脚本结束或被显示删除的地方为止

11.9K50
您找到你想要的搜索结果了吗?
是的
没有找到

在 Shell 脚本调用另一个 Shell 脚本的三种方式

exec exec 与 fork 不同,不需要新开一个子 Shell 来执行被调用脚本. 被调用脚本与父脚本在同一个 Shell 内执行。...所以被调用脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用。 其实从命名上可以感知到其中的细微区别,下面通过两个脚本来体会三种调用方式的不同: 第一个脚本,我们命名为 1.sh: #!...fork fork 方式可以看出,两个脚本都执行了,运行顺序为1-2-1,两者的PID值(1.sh PID=82266, 2.sh PID=82267),可以看出,两个脚本是分成两个进程运行的。...pid值看,两者是在同一进程 PID=82287 中运行的。 source ? source source方式的结果是两者在同一进程里运行。该方式相当于把两个脚本先合并再运行。...参考: 在shell脚本调用另一个脚本的三种不同方法(fork, exec, source)

4.3K20

【Groovy】Groovy 脚本调用 ( Java 类中调用 Groovy 脚本 )

文章目录 前言 一、Groovy 类中调用 Groovy 脚本 1、参考 Script#evaluate 方法分析 Groovy 类中调用 Groovy 脚本 2、创建 Binding 对象并设置 args...参数 3、创建 GroovyShell 对象并执行 Groovy 脚本 4、代码示例 二、完整代码示例 1、调用者 Groovy 脚本的类 2、被调用者 Groovy 脚本 3、执行结果 前言 Java...类中调用 Groovy 脚本 , 与 Groovy 类中调用 Groovy 脚本 , 代码基本类似 ; 也是参考 groovy.lang.Script#evaluate 方法 , 创建 Binding...对象并设置 args 参数 , 创建 GroovyShell 对象并执行 Groovy 脚本 , 就可以在 Java 类中启动 Groovy 脚本 ; 一、Groovy 类中调用 Groovy 脚本...在类方法中调用 Groovy 脚本 ; 在 evaluate 方法中 , 首先创建 GroovyShell 实例对象 , 然后执行该实例对象的 evaluate 方法 , 传入要调用的 Groovy

1.7K30

【Groovy】Groovy 脚本调用 ( Groovy 脚本调用另外一个 Groovy 脚本 | 调用 evaluate 方法执行 Groovy 脚本 | 参数传递 )

文章目录 一、Groovy 脚本调用另外一个 Groovy 脚本 1、调用 evaluate 方法执行 Groovy 脚本 2、参数传递 二、完整代码示例 1、调用者 Groovy 脚本 2、被调用者...Groovy 脚本 3、执行结果 一、Groovy 脚本调用另外一个 Groovy 脚本 ---- 1、调用 evaluate 方法执行 Groovy 脚本 在 【Groovy】Groovy 脚本调用...( Groovy 脚本编译 | Groovy 脚本字节码文件分析 ) 博客中 , 已经分析了 Groovy 脚本的本质 , Groovy 脚本继承了 groovy.lang.Script 类 ; 调用...= "arg1" 这样在被调用的 Groovy 脚本中 , 就可以获取 上述 args 参数 ; 二、完整代码示例 ---- 1、调用者 Groovy 脚本 // 要传入的参数 args = [] args...[0] = "arg0" args[1] = "arg1" // 调用 Script.groovy 脚本 evaluate(new File("Script.groovy")) 2、被调用者 Groovy

1.7K40

【Groovy】Groovy 脚本调用 ( Groovy 脚本编译 | Groovy 脚本字节码文件分析 )

文章目录 一、Groovy 脚本编译 二、Groovy 脚本字节码文件分析 一、Groovy 脚本编译 ---- Groovy 脚本编译后的字节码文件是一个继承 Script 的类 ; 编译下面的 Script.groovy...脚本 , /* 使用 groovy Script.groovy arg0 arg1 命令 执行该 Script.groovy 脚本 在 Groovy 脚本后面带上 arg0 和...arg1 参数 在 Groovy 脚本中 , 可以通过 args 获取参数 这是一个字符串数组 String[] 类型的 */ // 打印 Groovy 脚本参数 println..."type : ${args.class} , args : ${args}" 使用 groovyc -d classes Script.groovy 命令 , 编译上面的 Groovy 脚本 ; 二、...Groovy 脚本字节码文件分析 ---- 编译后的字节码文件如下 : // // Source code recreated from a .class file by IntelliJ IDEA /

2K30

shell脚本export变量只限脚本内么_shell脚本调用oracle存储过程

shell脚本中export命令未生效,原因详解 问题:我有一个脚本脚本中有如下一条语句 export fdu=“dufan” 用sh运行脚本后,在当前shell利用命令env查看环境变量,但是却没有...启动一个shell,os会分配一个记忆块给shell使用,此内存内的变量可让子进程取用 若父进程利用export功能,可以让自定义变量的内容写到上述的记忆块中 当加载另一个shell(子进程),子shell...此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。...source某脚本时,是在当前shell中执行,并未创建子进程(子shell)。 ​ sh某脚本或./某脚本时,会创建子shell,在子进程中进行脚本的执行。 ​ ....而soure执行脚本,linux将在当前shell进程进行脚本执行,脚本执行结束后,环境变量生效。

1.3K60

【Groovy】Groovy 脚本调用 ( Groovy 类中调用 Groovy 脚本 | 创建 GroovyShell 对象并执行 Groovy 脚本 | 完整代码示例 )

文章目录 一、Groovy 类中调用 Groovy 脚本 1、创建 GroovyShell 对象并执行 Groovy 脚本 2、代码示例 二、完整代码示例 1、调用者 Groovy 脚本的类 2、被调用者...Groovy 脚本 3、执行结果 一、Groovy 类中调用 Groovy 脚本 ---- 1、创建 GroovyShell 对象并执行 Groovy 脚本 首先 , 创建 GroovyShell 对象...在构造函数中 , 需要传入 Binding 对象 ; def shell = new GroovyShell(getClass().getClassLoader(), binding) 然后 , 设置要调用的...Groovy 脚本对应的 File 文件对象 ; def file = new File("Script.groovy") 最后 , 调用 GroovyShell 对象的 evaluate 方法 ,...File("Script.groovy") shell.evaluate(file) } } new Test().startScript() 二、完整代码示例 ---- 1、调用

1.3K10

Shell脚本调用Python程序

脚本背景:主管要求看门狗程序不仅仅只是看门,还要在看门成功的时候发送邮件给各个开发人员,而且必须要用公司原有的python程序作为发送邮件的主程序,所以需要在原有的看门狗程序上加一句话,而这个看门狗程序恰恰是...写这个脚本的大哥图啥?     ...msg = MIMEMultipart()     msg['Subject'] = sub     msg['From'] = me    #可以看得出,抄脚本这个大哥是从下往上抄的,me一看就是后补的...现在的重点就是要在看门狗这个shell脚本里添加一句命令,这个命令要启动AutoMail.py这个脚本,同时还要传导出看门狗负责的模块名,这里又涉及到了在python的启动命令里添加shell变量的“难点...举个例子吧,假设有一个脚本叫111.py,里面的内容如下: ? 当我启动这个脚本并在启动的同时传入参数的时候,输出是这样的: ?

1.5K10
领券