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

原文地址:http://blog.51cto.com/13803030/2141214

时间: 2024-10-04 07:02:57

shell编程之字符串比较和for循环的相关文章

shell编程(十四)--- until循环

until循环语法格式: until CONDITION do     statement done 说明: until进入循环的条件是:condition不成立时,就执行循环. until进入循环的条件正好和while相反,while进入循环的条件是:condition成立时,就进入循环. 示例1:while循环 [[email protected] Learn]# cat while.sh  #!/bin/bash declare -i sum=0 declare -i i=0 while 

Linux Shell编程之五字符串的处理

shell编程之字符串处理 在 shell 中,由于是一种弱类型的语言,在没有事先申明变量类型的情况下,所有的变量都是字符串.所以对字符串的处理就显得相当重要了. 下面介绍常见的对字符串处理的操作. 一.字符串切片 ${string_var:offest:length},类似于数组元素的提取. # 这里的string_var是一个变量,offest 是字符串的开始偏移量,length是切去字符串的长度 var=dhcpd:x:177:177:DHCP server:/:/sbin/nologin

bash shell基础之三字符串测试及for循环

字符串测试: ==:判断字符串相等 !=:判断字符串不相等 -n:测试指定字符串是否为空 -s:测试指定的字符串是否不空 循环语句: for 变量 in 列表; do 循环体 done 例子: for i in 1 2 3 4 5 6 7 8 9; do 加法运算 done 生成整数列表 for i in {1..100}:表示1到100 for i in `seq 100`:生成一到100或:seq 2(起始数) 2(固进数) 10(结束数).会生成2 4 6 8 10

第六课-第三讲06_03_bash脚本编程之五 字符串测试及for循环

1.字符测试1)==(=赋值用的):等号两侧引用变量的结果所以一个等号也可以自动判断出不是赋值,相等为真,不等为假.一定注意等号两侧一定要有空格.2)!= :测试是否不等,不等为真,等为假3)>4)<5)>=6)<=7)-n string :单目操作,测试字符串是否为空,空为真8)-s string :单目操作,测试字符串是否不空,不空为真 echo "scale=2;111/22;"|bcbc <<<"scale=2;111/22;

shell编程之字符串处理

# 1 .#号截取,删除左边字符,保留右边字符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 echo ${var#*//} # 2. ## 号截取,删除左边字符,保留右边字符,##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符 echo ${var##*/} # 3. %号截取,删除右边字符,保留左边字符,%/* 表示从右边开始,删除第一个 / 号及右边的字符 echo ${var%/*} # 4. %% 号截取,删除右边字符,保留左边字符,%%/* 表示从右

shell编程:for 循环

hell 编程--for in 循环 -------for in 格式------- for 无$变量 in 字符串 do $变量 done 一简单的字符串 枚举遍历法,利用for in格式对字符串按空格切份的功能 SERVICES="80   22   25   110   8000   23   20   21   3306   " for   x   in   $SERVICES do iptables   -A   INPUT   -p   tcp   --dport   $x

shell编程(十三) --- while循环

while循环适用于循环次数未知的场景. 语法格式: while CONDITION do     statement     -- done 说明:while是当CONDITION成立的时候就执行循环,当条件不成立时,退出循环. 示例1:计算从1加到100. [[email protected] Learn]# cat while1.sh  #!/bin/bash declare -i sum=0 declare -i i=0 while [ $i -le 100 ] do      let 

shell编程中for/while循环命令

一.for命令 在shell编程中,有时我们需要重复执行一直命令直至达到某个特定的条件,bash shell中,提供了for命令,允许你创建一个遍历一系列值的循环,每次迭代都通过一个该系列中的值执行一组预定义的命令. for的基本格式: for var in list do commands done 在list中,你提供了迭代中要用的一系列值.在每个迭代中,变量var包含列表中的当前值,第一个迭代会适用列表中的第一个值,第二个迭代使用第二个值,以此类推,直至列表中的所有值都过一遍. 1.1读取

shell编程中的字符串的截取方法

shell编程中的字符串的截取方法: 一.Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr "$a" 1 8 2.echo $a|awk '{print substr(,1,8)}' 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : '\(.\\).*' 6.echo $a|dd bs=1 count=8 2>/dev/null 二.按指定的字符串截取 1.第一种方法: ${varible##*stri