shell编程之字符串比较和for循环
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程之字符串比较和for循环相关的知识,希望对你有一定的参考价值。
一、字符串比较
字符串比较使用:= ,==,!=,>,<
如:A=‘hello’,B=‘hi’
判断A和B的值是否相等:[ $A = $B ]或者 [ $A == $B ] 如果相等则返回真
判断A和B的值是否不等:[ $A != $B ] 如果不相等则返回真
需要注意的是:条件判断符两边要用空格隔开,否则会报错
另外 > , < 用来判断两个字符串大小比较,是通过ASCII来比较,要使用 转义:如 ‘a’ < ‘b‘ ,‘ab’ > ‘aa‘
字符串是否为空判断:
如:- n string 判断字符串string是否为空,不为空返回真,-z string 判断字符串是否为空,为空返回真。
二、for循环
用法:
for 变量名 in 列表
do
循环体
done
三、脚本练习
1.要求:打印出用户的登录shell为/bin/bash的用户名。
#!/bin/bash
for i in cat /etc/passwd
# cat /etc/passwd
取出/etc/passwd中的每一行,并作为列表,把列表中的每一行循环赋值给i
do
username=echo $i | cut -d: -f1
#取出每行的用户名
sh=echo $i | cut -d: -f7
#取出每行的shell环境
if [[ $sh == ‘/bin/bash‘ ]];then #判断是否为/bin/bash
echo "$username"
fi
done
2.求1到100之间的和
#!/bin/bash
declare -i SUM=0 #declare -i 声明SUM变量为整数,赋值为0,也可以直接是SUM=0
#{1..100}表示生成1到100的数值列表,也可以使用seq 1 1 100生成1到100的列表,第一个1表示从1开始,第二个1表示步长为1,100是结束数字,步长可以省略,默认为1
for i in {1..100}
do
SUM=$(( $SUM+$i ))
done
echo $SUM
以上是关于shell编程之字符串比较和for循环的主要内容,如果未能解决你的问题,请参考以下文章
Shell编程Shell中for循环while循环until循环语句
Shell编程Shell中for循环while循环until循环语句
shell脚本——编程之循环语句(forwhileuntil)
for / while / until 基础循环语句案例图解 shell编程之循环语句