- 浏览: 138086 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
cnmcxiari:
Set ws = CreateObject("Wsc ...
bat启动java程序 可以隐藏cmd窗口 -
timer_yin:
不行啊 还是无法隐藏CMD窗口
bat启动java程序 可以隐藏cmd窗口
shell学习之-shell调用shell
- 博客分类:
- 项目实施
- fork ( /directory/script.sh)
fork是最普通的, 就是直接在脚本里面用/directory/script.sh来调用script.sh这个脚本.
运行的时候开一个sub-shell执行调用的脚本,sub-shell执行的时候, parent-shell还在。
sub-shell执行完毕后返回parent-shell. sub-shell从parent-shell继承环境变量.但是sub-shell中的环境变量不会带回parent-shell
-
exec (exec /directory/script.sh)
exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别
-
source (source /directory/script.sh)
与fork的区别是不新开一个sub-shell来执行被调用的脚本,而是在同一个shell中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.
可以通过下面这两个脚本来体会三种调用方式的不同:
1.sh
#!/bin/bash
A=B
echo "PID for 1.sh before exec/source/fork:$$"
export A
echo "1.sh: \$A is $A"
case $1 in
exec)
echo "using exec…"
exec ./2.sh ;;
source)
echo "using source…"
. ./2.sh ;;
*)
echo "using fork by default…"
./2.sh ;;
esac
echo "PID for 1.sh after exec/source/fork:$$"
echo "1.sh: \$A is $A"
2.sh
#!/bin/bash
echo "PID for 2.sh: $$"
echo "2.sh get \$A=$A from 1.sh"
A=C
export A
echo "2.sh: \$A is $A"
执行情况:
$ ./1.sh
PID for 1.sh before exec/source/fork:5845364
1.sh: $A is B
using fork by default…
PID for 2.sh: 5242940
2.sh get $A=B from 1.sh
2.sh: $A is C
PID for 1.sh after exec/source/fork:5845364
1.sh: $A is B
$ ./1.sh exec
PID for 1.sh before exec/source/fork:5562668
1.sh: $A is B
using exec…
PID for 2.sh: 5562668
2.sh get $A=B from 1.sh
2.sh: $A is C
$ ./1.sh source
PID for 1.sh before exec/source/fork:5156894
1.sh: $A is B
using source…
PID for 2.sh: 5156894
2.sh get $A=B from 1.sh
2.sh: $A is C
PID for 1.sh after exec/source/fork:5156894
1.sh: $A is C
$
发表评论
-
博客迁移说明
2014-05-08 14:49 539从今天起,此博客空间不再更新博客,全部博客迁移到http: ... -
reids学习(持续更新)
2013-08-28 15:38 607reids命令 文档查询网址http://redis.read ... -
编码解析过程
2013-07-11 19:21 903如果不进行encodeuri时而且web容器没有设置编 ... -
top:动态观察程序的变化
2013-07-11 17:46 772转载自:http://www.cnblogs.com/all ... -
linux 服务器之间做同步
2013-05-08 18:16 714在工作中我经常要用到服务器之间的数据同步 使用的命令rsy ... -
java 内存分析之---Eclipse Memory Analyzer使用
2013-05-03 17:42 1133生成报告 jmap -dump:live,format=b ... -
Rides 学习
2012-12-06 14:08 777http://www.searchdatabase.com.c ... -
apache学习
2012-11-05 11:05 642通过配置APACHE,使得被访问页面在客户端进行缓存,从而实现 ... -
linux 下apache的使用
2012-11-01 10:07 0安装: ./configure --prefix=/usr/ ... -
工具命令
2012-10-16 17:04 634nslookup 域名 netstat ... -
性能分析工具
2012-10-16 10:52 1507jmap是JDK自带的一个工具,非常小巧方便,其支持参数如下: ... -
nginx使用
2012-10-11 18:43 678nginx/nginx.conf 配置讲解:http:// ... -
win7 安装盘 进行分区
2012-05-29 14:37 676windows7安装盘自带的分区工具分区,会产生100M的隐藏 ... -
bat启动java程序 可以隐藏cmd窗口
2012-01-08 15:12 11231启动: 程序启动时创建一个文件 然后程序运行,主线程检测文件 ... -
TCP 学习
2011-12-31 11:53 702断开连接时的意外:这个算不上断开连接时的意外,当TCP连接发生 ... -
linux中终止java程序/进程
2011-12-29 09:26 5476在linux/unix下,你会怎么中止一个java应用或进程? ... -
乱码处理
2011-11-24 10:12 877将GBK编码的filename 转换成utf-8形式的newF ... -
FTP的应用
2011-11-14 19:30 764我们很多时候会用到FTP服务,但是往往需要我们安装ftp服务后 ... -
svn导出导入使用
2011-11-14 18:16 4360因为要更换svn服务器,因此需要在将原有的代码库迁移到新服务器 ... -
tomcat在windows和ubuntu下的安装配置
2009-12-24 09:52 780tomcat在windows和ubuntu下的安装配置 win ...
相关推荐
java调用shell 包含简单的编写shell文件 调用含有参数的shell文件
解决Unity不能调用shell脚本传递参数的问题
app_process 是 Android 上的一个原生程序,是 APP 进程的主入口点。总之就是个可以让虚拟机从 main() 方法开始执行一个 Java 程序的东西啦。
java调用shell命令.pdf
java调用shell的ganymed-ssh2-build210.jar和调用方法的工具类
这是在论坛上找到的,如题“c++中如何调用shell命令”,简单适用。
java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本java调用shell脚本
cat /mnt/log_function.sh #!/bin/bash #log function ...echo “${DATE} ${USER} execute $0 [INFO] $@” >>/var/log/log_info.log ######($0脚本本身,$@将参数作为整体传输调用) } log_error打印shell脚本
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...
在linux系统下安装好的php运行环境,使用shell调用php脚本,附送工具
主要介绍了Python调用shell命令常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
利用app_process实现免root调用shell_Java_下载.zip
go-sh是一个golang的调用shell的库。 使用linux的人都知道shell脚本有它难以取代的优势,用2个词形容就是,简单、粗暴。但是shell有不少的坑,很容易就写的换个机器就不能使了。golang的优势很明显,写出来的代码...
C# 调用windows的shell32 获取icon 调用winAPI转换SYSTEMTIME到FILETIME
java中调用shell 封装好的方法,直接调用其他指定主机上的shell
java调用shell
对于熟悉Scala开发的人来说,对于spark-sql的使用,直接jar包中...但是对于我,不打算学习Scala和Java语言,但是又想定时执行时间推延的周期、定时任务,该肿么办? spark-sql CLI几个参数,完全满足我等非专业人员。
基于lex词法分析,进行输入分析,提取unix相应的系统调用,以及参数,作为shell文件的输入,进行管道,后台,文件重定向,以及基本命令的进行,实现了unix系统中基本的shell功能。 shell.l--lex文件 myshell.c--处理...
shell命令调用kettle,将生成的日志按月打包,并运行前一天的数据,并且参数传递冲抵kettle中的变量