SHELL执行的三种模式
2016-03-28 00:00
246 查看
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中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.
在一个脚本中循环调用另一个脚本并且传参数的时候,如果不需要子脚本中声明的变量则使用fork,使用source在循环第十次的时候会报参数过长问题
( /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中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用.
在一个脚本中循环调用另一个脚本并且传参数的时候,如果不需要子脚本中声明的变量则使用fork,使用source在循环第十次的时候会报参数过长问题
相关文章推荐
- Delphi WinExec ShellExec 用法介绍
- 自动创建或删除
- 利用Linux查找重复文件(shell脚本)
- Linux基础06_Shell变量与vim
- bash 函数使用,实现模块化编程
- SparkShell实战
- 十、Shell基础
- 用shell批量创建用户
- shell脚本编程简介
- shell命令二
- HBase HA高可用集群搭建及HBase Shell简单使用
- [shell]Shell经常使用特殊符号
- Shell编程——统计特定目录下文件个数
- Ubuntu上的android sdk提示 bash: ......sdk/platform-tools/adb或者emulator: 没有那个文件或目录 解决笔记
- bash有空格的文件名
- percona xtrabackupd定期做全备,增量备份shell脚本
- Linux系统免密码登录Shell
- Linux Shell 文本处理工具集锦
- win7 xshell 缺失mfc110.dll
- 解决:bash: ./a.out: Permission denied