Sehll script是利用shell的功能所写的一个程序,这个程序使用纯文本文件,将一些shell的语法与命令写在里面,搭配正则表达式、管道命令与数据流重定向等功能,已达到咱们因此想要的处理目的。正则表达式
1、script的编写与执行shell
执行sh文件的方法:bash
使用绝对路径来执行函数
使用相对路径来执行调试
将sh文件放在PATH变量指定的目录下,例如:~/bin/进程
2、script的执行方式区别ip
利用直接执行的方式来执行script:在子进程中执行(直接命令执行、bash进程执行都属于这种)字符串
利用source来执行脚本:在父进程中执行(命令格式:source 文件名)it
3、善用判断式(test或者中括号)io
一、test命令
检测系统上面某些文件或者是相关的属性、字符串、多重条件判断
举例:
二、【】判断符号
在方括号中的每一个组件都须要用空格隔开,变量用双引号括起来,常量用单或者双引号括起来
例如:
箭头所对应的都是空格。
三、shell script默认变量$0,$1,。。。
执行脚本的后面能够带参数。
$0默认为文件名,其后的是参数。$#表明参数个数,$@表明"$1"," $2","$3"等$*表明“$1c$2c$3”,其中c是分隔符,默认是空格键
举例:
执行一个带参数的script,要求屏幕显示:
4、条件判断式
一、If...then
if [ 条件判断式一 ]; then
程序段
elif [ 条件判断式二 ]; then
程序段
else
程序段
fi
(注意事项:if 和 [ 之间须要有空格,; 和 then之间也须要空格)
举例:
二、case...esac
case $变量名称 in
"第一个变量内容")
程序段
;;
"第二个变量内容")
程序段
;;
*)
程序段
exit 1
;;
Esac
举例:
5、函数
function fname(){
程序段
}
其中function也是拥有内置变量的,它与shell script很相似,函数名称表示$0,后续变量是以$1,$2...替代的
6、循环
一、 while [ condition ]
do
程序段
done
二、 until [ condition ]
do
程序段
done
三、 for var in conl con2 con3
do
程序段
done
四、 for ( ( 初始值; 限制值; 执行步长 ) )
do
程序段
done
7、追踪与调试
sh [-nvx] 文件名
-n:不要执行脚本,仅查询语法的问题
-v:在执行脚本前,先将脚本的内容输出到屏幕上
-x:将使用到的脚本内容显示到屏幕上