第13章 学习Shell Scripts
在script里面撰写的程序,执行方法有以下两种:
1.直接命令下达(shell.sh问价必须具备可读和可执行权限)通过绝对路径、相对路径、变量[PATH]功能下达命令
2.以bash程序来执行
着手写script程序——第一行要写出 #!/bin/bash 来声明该script使用的shell名称
script撰写习惯,在每个文件头处记录下以下信息:
* script的功能
* script的版本信息
* script的作者与联络方式
* script的版权宣告方式
* script的History(历史记录)
* script内较特殊的指令,使用【绝对路径】的方式来下达
* script运作时需要的环境变量预先声明与设定
-------------------------------------------------------------------------
shell scripts里面的对谈式脚本、随日期变化的文件、简单的加减乘除
运算中最好采用这个方式: var=$((运算内容))
script的执行方式差异(source,sh script,./script)
利用直接执行的方式来执行script——其实script是在子程序的bash中执行的
source执行脚本——在父程序中执行
-------------------------------------------------------------------------
善用判别式——
test指令的测试功能:
利用判断符号 [ ]注意事项:——常用于条件判别式 if...then...fi
1.在中括号 [ ] 内的每个组件都需要有空格键来分隔
2.在中括号内的变数,最好都以双引号括号起来
3.在中括号内的常数,最好都以单或双引号括号起来
多个判别条件用 -o (或)来连结,
Shell script的默认参数($0,$1...)
可以使用特殊的变量调用这些默认参数,比如 $# 代表后接的参数个数, $@代表独立的每个变量(用双引号括起来), $* 代表每个变量中间加一个 c 作为分隔符,默认为空格键。
shift:造成参数变量号码偏移(从右往左)
----------------------------------------------------------------------
条件判别式
单层、简单条件判别式——if(条件判别式)then(执行操作)fi(结束)
多重、复杂条件判别式——if(条件判别式成立)then...else...fi(结束)
还有更为复杂的条件判别式:if ...then...
elif...then...
else...
fi
利用case...in...esac判断
感觉就是C语言里面的case语句,不过结束标志是倒着写的
利用function功能
就是普通的函数啦,实现代码的复用
-----------------------------------------------------------------
循环(loop)
(不定循环)——while do done, until do done相当于两个从句
while do done是当符合什么条件的时候就执行从句中的操作;
until do done是符合什么条件的时候就终止从句中的操作
(固定循环)——for do done
shell script的追踪与debug