对linux中source,fork,exec的理解以及case的 使用
2015-07-07 15:30
766 查看
fork
使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process,但 parent process 的环境是不会因 child process 的改变而改变的.
source
使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不是产生一个 child process 来执行. 由于所有执行结果均于当前 process 内完成,若 script 的环境有所改变, 当然也会改变当前 process 环境了.
source ./my.sh 或 . ./my.sh
exec
使用 exec 方式运行script时, 它和 source 一样, 也是让 script 在当前process内执行, 但是 process 内的原代码剩下部分将被终止. 同样, process 内的环境随script 改变而改变.
case的使用
case $1 in
exec)
echo "using exec..."
exec ./2.sh ;;//必须注意后面的两个分号,必须使用两个分号
source)
echo "using source..."
. ./2.sh ;;
*)//此处代表默认配置
echo "using fork by default..."
./2.sh ;;
esac
注意在是用的过程中,变量$1由./hao.sh source这样类似的语句产生
使用 fork 方式运行 script 时, 就是让 shell(parent process) 产生一个 child process 去执行该 script, 当 child process 结束后, 会返回 parent process,但 parent process 的环境是不会因 child process 的改变而改变的.
source
使用 source 方式运行 script 时, 就是让 script 在当前 process 内执行, 而不是产生一个 child process 来执行. 由于所有执行结果均于当前 process 内完成,若 script 的环境有所改变, 当然也会改变当前 process 环境了.
source ./my.sh 或 . ./my.sh
exec
使用 exec 方式运行script时, 它和 source 一样, 也是让 script 在当前process内执行, 但是 process 内的原代码剩下部分将被终止. 同样, process 内的环境随script 改变而改变.
case的使用
case $1 in
exec)
echo "using exec..."
exec ./2.sh ;;//必须注意后面的两个分号,必须使用两个分号
source)
echo "using source..."
. ./2.sh ;;
*)//此处代表默认配置
echo "using fork by default..."
./2.sh ;;
esac
注意在是用的过程中,变量$1由./hao.sh source这样类似的语句产生
相关文章推荐
- 搭建 CentOS 6 服务器(11) - vsftpd、ProFTPD
- 搭建 CentOS 6 服务器(12) - Samba
- Linux运维基础采集项
- linux系统中ffmpeg安装配置步骤
- CentOS6.5安装VMwareTools
- linux如何关闭防火墙
- sedna在windows和Linux下的xquery区别
- Linux内存管理之mmap详解
- linux下cpu物理个数、多核、超线程判断解析
- Linux下svn:svn: REPORT of '/svn/aa/!svn/vcc/default': Could not read chunk size: 远程主机强迫关闭
- Linux修改/etc/profile配置错误command is not found自救方法
- centos6.5 安装subversion1.8.13
- 悟空学Linux专栏----第1篇
- linux后端诊断与调试技术
- 创建交换分区swap增加Linux虚拟内存
- linux下svn常用指令
- php for Linux之mysql扩展模块安装与配置
- Linux 防火墙开放特定端口 (iptables)
- linux下防火墙开启,关闭,查看,设置
- Linux 多进程读写文件 文件锁