一、应当包含的内容
1、第一行声明这个script使用的shell类型 | #!/bin/bash |
2、程序内容的说明 | #Progranm: |
3、创建日期、版本 | #History: |
4、主要环境变量的声明 |
|
5、主程序部分 |
|
6、告知执行结果 | exit 0(或其他) |
二、编写的script的执行方式
1、按路径执行 | 绝对路径; 相对路径; 根据PATH中的路径,此时shell.sh应当在PATH指定的目录内,如~/bin/ | 注意:对shell.sh应当有r和w权限 |
2、以bash进程执行 | sh shell.sh | 注意:对shell.sh有r权限; 且当前目录存放有shell.sh |
3、利用source执行 | source shell.sh | 注意:与前两个不同,这里是在父进程中执行,script中声明的变量在父进程中还能使用 |
三、相关语句与特有信息
1、默认变量($0,$1,$2 … ) | 其中$0为命令的名称,$1,$2 … 为默认参数,在脚本中可以直接使用 $#:代表后面接的参数个数; $@:代表默认变量"$1"、"$2"、"$3"、"$4" |
|
2、利用function功能 | 函数 | 格式: function 函数名 ( ) { 程序段 } |
3、追踪与调试 | sh […] 脚本文件 | -n:不执行,仅检查语法 -v:在执行script前,将脚本内容输出到屏幕上 -x:不仅显示每步的执行代码,还将显示每一步的执行结果 |
2、判断式 | 1、命令test | 文件类型的判断: -e:文件是否存在 -f:是否为文件 -d:是否为目录 文件的权限检测: -w:可写权限 -x:可执行权限 … |
| 2、判断符号[] //在命令中,[]就是test,可用test中的相关参数 | 变量一双引号括起来; [每个组件之间均有空格]: [ "$HOME" == "mail" ] |
3、条件判断式 | if … fi | 格式: if[ 条件判断式 ];then 执行的命令 elif[ 条件判断式 ];then 执行的命令 else 执行的命令 fi |
| case … esac | 格式: case 变量名 in "第一个变量内容" ) 程序段 ;; "第二个变量内容" ) 程序段 ;; …. "最后一个变量内容" ) exit 1 ;; esac |
4、循环 | 不定循环 while do done | while [ condition ] do 程序段落 done |
| 固定循环 for … do … done | for 变量名 in con1 con2 con3 … do 程序段 done 或者: for 变量名 in $( seq 1 100 ) do … done 或者: for ( ( i=1; i<$变量名; i=i+1 ) ) do … done |
见P381 |
|
|