linux shell 编程
shell 编程
1.简述
利用vi等文本编辑器编写Shell脚本的格式是固定的,如下:
#!/bin/bash #comments Your commands go here
首行中的符号#!告诉系统其后路径所指定的程序bash即是解释此脚本文件的Shell程序。
除第一行外,以#开头的行就是注释行,直到此行的结束。如果一行未完成,可以在行尾加上",这个符号表明下一行与此行会合并为同一行。
2.变量
有环境变量、内部变量、用户变量。
Shell Script是一种弱类型语言,使用变量的时候无需首先声明其类型。
variable_name = variable_value
取值的时候要在变量名前加$,$variable_name可以在引号中使用,这一点和其他高级语言是明显不同的。
特殊变量
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
demo:
3.数字比较
-eq equal
-ge greater or equal
-le less or equal
-ne not equal
-gt greater than
-lt less than
4.字符串比较
== 是否相等
!= 是否不等
-n 长度是否大于0
-z 长度是否等于0
5.文件操作符
-d 是否为目录
-f 是否为文件
-r 是否可读
-w 是否可写
-x 是否可执行
6.逻辑运算符
! 等价c语言 !
-a 等价c语言 &&
-o 等价c语言 ||
7.for语句
for current_variable
do
statements
done
8.if语句
if [ expression ] ; then
statements
elif [ expression ] ; then
statements
else
statements
fi
说明:elif或else语句不是必需的。
9.case语句
case str in
str1 | str2)
statements;;
str3|str4)
statements;;
*)
statements;;
esac
说明:*对应C语言的 default; ";;"对应C语言的break。
10. exit语句
退出shell程序并返回一个值,方便被另一个shell调用并给出反馈。
11.函数
func(){
statements
}
12. shell脚本中执行其他shell脚本
12.1 直接调用
12.2 exec
12.3 source
如 source /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh 或 . /root/soft/apache-tomcat-8.0.21/bin/shutdown.sh
source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。
读取目标脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
最后更新:2017-04-03 08:26:12