执行 shell 脚本

执行脚本

1,脚本文件加上可执行权限
command:

itcast$ chmod a+x test.sh    //使用chmod命令给脚本文件加上权限
itcast$ ./test.sh            //执行可执行文件

当执行以上命令时,shell fork 一个子进程调用exec执行 tese.sh 这个程序,可这个程序是一个脚本文件,它没有代码段和stat函数。
exec 还有另外一种机制,如果执行的是文本文件且第一行指定了解释器,则用该解释器的代码段替换当前进程,并从解释器的stat段开始执行,该文本作为命令行参数传给解释器。 因此执行上述脚本相当于执行程序。

2,指定解析器的目录执行脚本
command:

itcast$ /bin/sh ./test.sh    //不需要test.sh文件具有可执行权限          

总结:1 和 2 两种方式执行脚本的操作影响的是子进程,不会影响到交互式shell。 因为shell 解析器会fork子进程去执行脚本。

例如:命令行下输入的命令用()括号括起来,那么也会fork出一个子Shell执行小括号中的命令
command:

itcast$ (cd ..;ls -l)

3,使用shell 的内建命令去执行脚本
command:

itcast$ source ./test.sh      //source 是shell的内建命令

或者

itcast$ . ./test.sh           // "." 是shell 的内建命令

使用内建命令执行脚本,相当于在交互式shell中逐行执行命令。
例如:
command:

itcast$ cd ..; ls -l          //改变交互式shell 的 pwd

内建命令: shell进程的一个函数。
使用man命令查看bash的内建命令
command:

itcast$ man bash-builtins
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值