Shell脚本编写
Shell脚本不需要编译就可以运行
首先建立一个格式为.sh的文件,打开它。
echo命令的功能是在屏幕上显示一段文字。Echo “字符”功能与C语言中的printf()一样
脚本写好之后运行时权限不够要,chmod +x test.sh。
文件格式:
#!/bin/bash
# 注释
命令…
第一行中的符号“#!”用来指定解释执行该脚本文件的Shell程序。如果脚本文件中缺少该行,在执行过程中,会报出错误信息。除了第一行外,所有以“#”字符开头的行都是注释行,如果一行未完成,可以在行尾加上“\”字符,表示与下一行合并为一行。
特殊字符:由双引括起来的字符,除$、`(反引号)和\保留其特殊功能外,其余全为普通字符号
$用于变量的引用;
变量的定义引用和清除:
STR=“Hello world” #对变量STR进行赋值
echo $STR或echo ${STR} #用$对其进行引用
unset STR #清除STR变量
\为转义字符,使用-e进行解析,如:echo -e "a\nd" // \n自动换行
另外,在某个字符前面利用反斜杠(\)能够阻止shell把后面的字符解释为特殊字符。
单引号内部不能使用$、`(反引号)和\,都作为普通字符对待。
常用命令:
echo ${#STR} #计算长度(字母个数)
echo ${STR:1:3} #显示第2,3,4个字符
echo “`expr index “$STR” 23`” #在变量STR中23 谁先出现 显示谁位置
数组:
array1=(0 1 2 3 4) #3种定义赋值数组(圆括号)
echo ${array1[0]} #显示数组值
echo ${#array1[@]}或echo ${#array1[*]} #计算数组长度
算数运算:
c=`expr $a + $b` #.sh中的加减乘除
c=`expr $a \* $b` #.sh中的乘法
数值比较:
-eq:两个数相等;(=)
-ne:两个数不相等;(!=)
-gt:第一个数大于第二个数;(>)
-lt:第一个数小于第二个数;(<)
-le:第一个数小于等于第二个数;(<=)
-ge:第一个数大于等于第二个数。(>=)
字符串比较;
==:两个字符串相等;
!=:两个字符串不等;
-z:字符串为空;
-n:字符串不为空。
结构控制语句
分支:if 条件1
then
命令1
elif条件2
then
命令2
else
命令3
fi
注意:if语句以它的反写fi结尾。如果条件1成立,则执行then后面的命令1;如果条件1不成立,但条件2成立,则执行命令2;如果两个条件都不成立,则执行命令3。
循环: for 变量名 in [列表]
do
命令1 命令2 …
done
在for循环中,使用变量名来遍历列表中所有取值,当变量值在列表中时,即执行一次所有命令。
while 条件
do
命令1 命令2 ...
done
当条件成立时,do和done之间的命令才会被执行,执行完成后重新测试条件,如果不成立则终止循环。