Shell是Linux提供的一种脚本语言,可以完成部分编程操作。从根本上讲Shell仅仅是一个命令解释器,而Shell脚本也就是一个由命令和一些简单的逻辑判断的堆砌。
所以说学好Shell脚本最重要的因素就是熟悉基本命令的使用。并掌握一些Shell逻辑判断的语句。
写一个shell脚本首先要声明shebang,也就是:
#!/bin/bash
由于Shell可能涉及的东西比较多,我这里只给大家列出来一些常用的东西:
1.命令执行状态结果: #判断语句的关键 0 #执行成功 1-255 #执行失败 2.shell中的引用: `` #tab键上的那个点,引用命令的执行结果;等于$() ‘‘ #单引号,强引用,变量不会替换 "" #双引号,弱引用,变量会替换 3.变量赋值及引用: 赋值:变量名="值" #引号平时可以不加,但是如果值有空白必须要加;建议加上 引用:$变量名 或者 ${变量名} #花括号的意义是为了避免变量名后面有字符,导致变量引用出现错误,例如: [[email protected] tmp]# a=good [[email protected] tmp]# echo "we are $abye" we are [[email protected] tmp]# #看见了吗?此时引用的不是a,而成了abye,此时{}就派上了用场: [[email protected] tmp]# echo "we are ${a}bye" we are goodbye [[email protected] tmp]# ##############懂了吗?######################## 4.自定义脚本退出码: exit [0-255] 0为成功,1-255失败 #声明一下: # 脚本执行后的状态码,取决于最后执行的命令成功与否; 5.位置参数: $1/$2... #脚本的第一个参数,第二个参数 [email protected] #脚本的所有参数 @# #统计脚本参数的个数 6.shell中的逻辑与和逻辑或: && 代表与; #与运算:真&&真=真、真&&假=假、假&&真=假、假&&假=假 || 代表或; #或运算:假&&假=假、真&&假=真、假&&真=真、真&&真=真
条件判断:
1.单分支条件判断语句: if 条件; then 语句; #如果条件判断成功(状态码为0),那么就执行此语句 fi 2.双分支条件判断语句: if 条件; then 语句1; #如果条件判断成功(状态码为0),那么就执行此语句 else 语句2; #如果条件判断失败(状态码为0-255),那么就执行此语句 fi 3.多分支条件判断语句: if 条件1; then 语句1; #如果条件判断成功(状态码为0),那么就执行此语句 elif 条件2; then #如果第一个条件判断失败,则进行此判断 语句2; #如果条件判断成功(状态码为0),那么就执行此语句 elif ...;then 语句n; else 语句x; #如果上面的条件判断失败,那么就执行 fi
for循环:
for i in list; do 循环体;done# for是一个列表循环类型,list为一个列表,将i依次赋值给这个列表的数据,直到列表循环完成。生成列表的方式有很多种:# 1.放多个数据空格分开,例如 for i in 1 2 3 4; do 意义就是把i依次赋值给这个列表(1,2,3,4)并循环。直到列表循环结束(这里为4次)# 2.使用{1..100}生成数字列表。意义是循环100次# 3.使用$(seq 100)生成数字列表。等同于{1..100}
条件测试:
#条件测试使用test EXPRESSION、[ EXPRESSION ]、[[ EXPRESSION ]]符号进行。 1.整数测试: #下面的都是双目测试 -eq #等于 -ne #不等于 -lt #小于 -gt #大于 -le #小于等于 -ge #大于等于 2.字符测试: #下面的都是双目测试: == #测试字符串是否相等 != #测试字符串是否不等 =~ #左侧是字符串,右侧是一个模式;判定左侧的字符串能否被右侧的模式所匹配;只能在[[ xxx =~ x ]]中使用 #下面的都是单目测试: -n #测试字符串是否不为空 -z #测试字符串是否为空 3.文件测试: #下面的都是单目测试: -e #测试是否存在;等于-a -f #测试是否为普通文件 -d #测试是否为目录文件 -S #测试是否为socket文件 -p #测试是否为命名管道文件 -h #测试是否为链接文件; 等于-L -b #测试是否为块设备文件; -c #测试是否为字符设备文件 -r #测试是否可读 -w #测试是否可写 -x #测试是否可执行 -s #测试文件是否为空
shift替换; #替换的意义是用来踢掉位置参数
while循环:
while 条件; do 循环体; done #while循环是一个条件判断循环,如果条件满足就开始循环,不满足则退出循环;在while循环应该定一个变量,变量随着while循环发生变化,直到满足退出条件; while :; do 循环体; done #这个while循环是一个无限循环,直到主动退出;
until循环:
until 条件;do
循环体;
done
#Until循环和while循环正好相反,如果不满足条件就开始循环,满足则退出;
待补充。
时间: 2024-12-21 20:06:36