SHELL——SHELL脚本执行方式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Shell脚本的执行方式:

注明:wd代表“脚本保存的目录”

1.fork

语法:/wd/shell.sh

fork是最普通的,就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个脚本.运行的时候开一个子shell执行调用的脚本,子shell执行的时候,父shell还在。子shell执行完毕后返回父shell。子shell从父shell 继承环境变量.但是子shell中的环境变量不会带回父shell

2.exec

语法: exec /wd/shell.sh

exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别。

3.source

语法:source /wd/shell.sh

与fork的区别是不新开一个子shell来执行被调用的脚本,而是在同一个sh ell中执行。所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用。

4.()

语法:( 语句;语句;语句;…… )

圆括号中命令列表的命令将会运行在一个子shell中。

比如:

$ (cd ..;ls -l)

cd ..命令改变的是子Shell的PWD,而不会影响到交互式Shell。

然而命令

$ cd ..;ls -l

则有不同的效果,cd ..命令是直接在交互式Shell下执行的,改变交互式Sh ell的PWD,然

而这种方式相当于这样执行Shell脚本:

$ source ./script.sh

或者

$ . ./script.sh

source或者.命令是Shell的内建命令,这种方式也不会创建子Shell,而是直接在交互式Shell下逐行执行脚本中的命令。

source命令、.命令

语法: . filename [arguments]

source filename [arguments]

作用:

当在命令行中调用的时候, 这个命令将会执行一个脚本. 当在脚本中调用的时候, source file-name 将会加载file-name文件, 或者. (点命令)一个文件将会在脚本中引入代码, 并将这些代码附加到脚本中(与C语言中的#in clude指令效果相同).最终的结果就像是在使用"source"的行上插入了相应文件的内容.

在多个脚本需要引用相同的数据, 或者需要使用函数库的情况下, 这个命令非常有用.

5.{}

{语句;语句;……}不会启动子SHELL。

相关文档
最新文档