scripts 的执行
基本上,一个 script 被执行的时候, bash 会据以判断执行的步骤为:
如果读取到一个 Enter 符号( CR ),就尝试开始执行该行命令;
如同前面 bash command 提到的,指令间的多个空白会被忽略掉;
而空白行也将被忽略掉!,并且 tab 也是不会被理会的!
至于如果一行的内容太多,则可以使用 \ 来延伸至下一行;
此外,使用最多的 # 可做为批注!任何加在 # 后面的字,将全部被视为批注文字而被忽略!
然后,在撰写一个 scripts 的时候,最好养成良好的习惯:
先宣告使用的 shell 为何?(特别留意这一点,在某些状况中,例如 /etc/crontab 情况下,如果没有宣告使用的 shell ,常常会出现错误讯息而导致 scripts 无法被执行呦!)
注明该 script 的内容功能、版本信息、作者、建文件日期等等
每一个大步骤的主要功能(也顺便提供自己未来修改之用!)
那么 scripts 这个档案要如何来执行呢?执行的方法有两种:
一个是将该档案改成可以执行的属性,如 755 scripts.file ,然后执行该档案;
另一种则是直接以 sh 这个执行档来执行 script 的内容,如 sh scripts.file!
大致上就是这样啦!
卷标与运算符号:declare
[test test]# declare [-afirx] 参数说明: -a :定义为数组 array -f :定义为函数 function -i :定义为整数 integer -r :定义为『只读』 -x :定义为透过环境输出变量 |
script 的参数的代号
[root test]# myscript opt1 opt2 opt3 opt4 $0 $1 $2 $3 $4 |
条件判断二:使用 case ...esac 的方式
case 种类方式(string) in < ==开始阶段,那个种类方式可分成两种类型,通常使用 $1 这一种直接下达类型! 种类方式一) 程序执行段 ;; <==种类方式一的结束符号! 种类方式二) 程序执行段 ;; *) echo "Usage: {种类方式一|种类方式二}" < ==列出可以利用的参数值! exit 1 esac <==这个 case 的设定结束处! |
Script如何debug:
[test test]# sh [-nvx] scripts -n :不要执行 scripts ,查询 scripts 内的语法,若有错误则予以列出! -v :在执行 scripts 之前,先将 scripts 的内容显示在屏幕上; -x :将有使用到的 scripts 内容显示在屏幕上,与 -v 稍微不同! |