其实,shell script就是利用shell的功能缩写的一个程序,这个程序是使用纯文本文件,将一些shell的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重导向等功能,达到我们想要的目的。
bash的两种不同的执行方式的区别:
# source sh02.sh
这种方式下shell脚本在父进程中执行,公用一个shell环境,变量也公用,所有配置文件比如~/.bashrc改完了可以用source ~/.bashrc来更新而不用注销系统。
# sh sh02.sh
这种方式下,sh02.sh在子进程中执行,其变量对于父进程不可见,父进程中的变量对子进程也不可见,但可以用export将变量变成环境变量后通用。
====利用test做判断====
还可以利用[]来进行判断。不过要注意的是:
1,在中括号[]内每个组件都要有空格键分割
2,在中括号中的变量,最好用双引号括起来(变量定义的时候不要)
3,中括号中的常量,最好以单引号或双引号括起来
====shell script的默认变量($0,$1 …)
/path/to/scriptname opt1 opt2 opt3 opt4
$0 $1 $2 $3 $4
这样够清楚了吧。
除了这些数字变量外,还有几个特殊的:
* $#:代表后接的参数“个数”
* $@:代表“$1”、“$2”、“$3”、“$4”之意,每个变量都是独立的(用双引号括起来)
* $*:代表“ “$1c$2c$3c$4c” ”,其中c为分割字符,默认为空格,所以本例中代表“ “$1 $2 $3 $4″ ”
====条件判断式if…then…fi
典型例子: