shell学习笔记
时间:2014-11-01 10:34来源:linux.it.net.cn 作者:it
-
什么是shell? redhat 9下都有什么shell?
可以和内核进行通信的只有三种类型的程序:shell kde/gnome aplication,shell是命令解释器,redhat9下都有shell: bash、ash、tsh等
-
什么是shell脚本?shell脚本要运行,需要什么条件?shell脚本都有什么语法和规则?
如果学学习过dos下的批处理命令的话就会对shel非常的熟悉,shell脚本就是命令的集合,但又一些扩展的东西,比如加入了编程语言种的跳转、循环、条件判断等,shell种的变量不需要定义就可以直接使用哪个。
-
shell中的变量?
shell的变量在申明的是偶就可以直接的使用, 定义的合适为 : 变量名=变量值 ,如果变量值中出现空格,可以将变量值用引号括起来, 应用: $(变量名),shell中的特殊变量:$# 脚本传递的参数个数,$* 显示脚本传递的所有参数 $$ 脚本运行的当前pid号,$? 显示最后推出的状态 0为正确 1为发生错误,$1 : 引用传递的参数。 shell中的变量可以定义类型,可以使用declare 命令 格式为: declare[-afirx] 变量名 -a 定义为数组 -f 定义为函数 -i 定义为整数 -r 定义为只读 -x 定义为透过环境的输出变量, 从键盘读取参数可以采用: read 变量名
-
关于shell学习中的变量测试:
条件测试又两种方式: test condition
[ conditon ]
需要主要的是[],方括号的两边各加一个空格,
测试文件状态:
-e 是否存在 -d 是否为目录 -f 是否文件存在 -L 是否为文件连接符
-s 文件非空 -r 是否可读 -w是否可写 -x是否可执行
[ -e /dir ] && echo exitst ,这里要注意的是逻辑连接符,它的意思是如果前边的条件测试成立,然后才执行后边的命令,如果不成立,则不执行后边的命令。
字符串测试命令:
测试格式为: test str operate str ; test str_operate str
[ str_operate str ] [ str operate str ]
其中的stroperate operate 可以为 :
= 两个字符串相等 != 两个字符串不相等 -z 字符串为空 -n 字符串非空
数值的测试条件:
格式为: test num1 operate num2 [ num1 operate num2]
operate 可为: -eq -ne -gt -lt -ge -le
多重条件判断:
-a : test -x file -a -r file ; -o test -x file -o -w file ; !: test ! -x file
-
if 循环结构:
if [ ] ;then
code1
else
code 2
fi
if [] ;then
code1
elif [] ; then
code2
.....
else
coden
fi
-
多重跳转 case
case $变量名 in
第n个变量值)
code 1
::
.....
*)
coden
exit 1
esac
(责任编辑:IT) |
------分隔线----------------------------