一:
基本上,一个 script 被执行的时候, bash 会据以判断执行
的步骤为:
1. 如果读取到一个 Enter 符号( CR ),就尝试开始执行该行命令;
2. 如同前面 bash command 提到的,指令间的多个空白会被忽略掉;
3. 而空白行也将被忽略掉!,并且 tab 也是不会被理会的!
4. 至于如果一行的内容太多,则可以使用 / 来延伸至下一行;
5. 此外,使用最多的 # 可做为批注!任何加在 # 后面的字,将全部被视为批注文字而被忽略!
二:
在撰写一个 scripts 的时候,最好养成良好的习惯:
1. 先宣告使用的 shell 为何?(特别留意这一点,在某些状况中,例如 /etc/crontab 情况下,如果
没有宣告使用的 shell ,常常会出现错误讯息而导致 scripts 无法被执行呦!)
2. 注明该 script 的内容功能、版本信息、作者、建文件日期等等
3. 每一个大步骤的主要功能(也顺便提供自己未来修改之用!)
那么 scripts 这个档案要如何来执行呢?执行的方法有两种:
* 一个是将该档案改成可以执行的属性,如chmod 755 scripts.file ,然后执行该档案;
* 另一种则是直接以 sh 这个执行档来执行 script 的内容,如 sh scripts.file!
三:
1:卷标与运算符号:declare
declare 【afirx】
-a:定义为数组
-f:定义为函数
-i:定义为整数
-r:定义为只读
-x:定义为透过环境输出变量
2:
read 的功能就是
『依据您在键盘输入的结果 input 到变量内容中』
3:定义一个 script 的参数的代号
myscript opt1 opt2 opt3 opt4
$0 $1 $2 $3 $4
myscript为自己shell的文件名,$1,$2,$3,$4为你执行该shell时候的参数。
$0 : myscript 亦即是 script 的檔名
$1 : opt1 亦即是第一个附加的参数 (parameter)
$2 : opt2
$3 : opt3
四:逻辑判断式与表达式
1:if then fi 的方式
if [ 条件判断一 ] && (||) [ 条件判断二 ]; then <== if 是起始的意思,后面可以接若干个判断式,使用 && 或 ||
执行内容程序
elif [ 条件判断三 ] && (||) [ 条件判断四 ]; then <==第二段的判断,如果第一段没有符合就来此搜寻条件
执行第二段内容程序
else <==当前两段都不符合时,就以这段内容来执行!
执行第三段内容程序
fi <==结束 if then 的条件判断!
新手常犯的错误
1. 在 [ ] 当中,只能有一个判别式;
2. 在 [ ] 与 [ ] 当中,可以使用 && 或 || 来组织判别式
3. 每一个独立的组件之间『都需要有空格键来隔开』!
2:case ...esac 的方式
case 种类方式(string) in <==开始阶段,那个种类方式可分成两种类型,通常使用 $1 这一种直接下达类型!
种类方式一)
程序执行段
;; <==种类方式一的结束符号!
种类方式二)
程序执行段
;;
*)
echo "Usage: {种类方式一|种类方式二}" <==列出可以利用的参数值!
exit 1
esac <==这个 case 的设定结束处!
五:循环
1:* for (( 条件一; 条件二; 条件三 ))
* for variable in variable1 variable2 .....
for有以上两种表示方法
其中for (( 条件一; 条件二; 条件三))中
* 条件一:这可以看成是『初始值』
* 条件二:这可以看成是『符合值』
* 条件三:这可以看成是『步阶』!
2:while...do...done
while:当条件相同的时候,就继续做!
3:until...do...done
until:直到条件相同的时候才离开程序