Linux----循环语句

106 阅读2分钟

一、转义字符

echo -n 表示不换行输出

echo -e 输出转义字符,将转义后的内容输出到屏幕上

常用的转义字符如下:

  1. \b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。

  2. \c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。

  3. \n 换行,被输出的字符从"\n"处开始另起一行。

  4. \f 换行,但是换行后的新行的开头位置连接着上一行的行尾;

  5. \v 与\f相同;

  6. \t 转以后表示插入tab,即横向制表符;

  7. \r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

  8. \ 表示插入""本身;

二、for循环语句

1.语法结构:
(1)列表循环
(2)不带列表循环
(3)类C风格的for循环

格式:

for  变量名  in  取值列表
do
	命令序列
done

2.用法:

读取不同的变量值,用来逐个执行同一组命令

for循环经常使用在已经知道要进行多少次循环的场景

例1:显示从0到9的数字

方法一:
#!/bin/bash 

for i in {0..9}
do
      echo $i
done


方法二:
#!/bin/bash 

for i in $(seq 0 9)
do
      echo $i
done

三、while循环语句

while循环一般用于有条件判断的循环,若判断条件为真,则进入循环,当条件为假就跳出循环

用法:

重复测试某个条件,只要条件成立则反复执行

常在不知道范围的时候成立

格式:

while 条件测试操作
do
	命令序列
done

例:输出1-100之间不能被3整除的数字

#!/bin/bash
i=1
while [ $i -le 100 ]
 do
 if [[ $i%3 -ne 0 ]]
 then echo "$i"
 fi
 let i++
done

四、until循环语句

执行do语句直到条件为假

until 不成立的条件

do

done

示例:计算1-50的和值

五、结束循环break和continue

for ((a=1; a<=5;a++))

do

       echo "外循环第$i次"

       if [  $a -eq 3 ];then

            break

        fi

        for ((b=1; b<=5;b++))

        do

        echo "内循环第$b次"

        if [$b -eq 3 ];then

            break

        fi

       done

done

  break 2 跳出2层循环

continue :中止某次循环中的命令,但不会完全中止整个命令

#!/bin/bash

for ((a=1; a<=15; a++))

do

if [ $a -gt 5 ] && [ $a -lt 10 ]

then

continue

fi

echo "current value: $a"

done

六、IFS字段分隔符

默认包含 空格,制表符,换行符

查看命令:set | grep IFS

IFS=$' \t\n'

修改成只换行


IFS=$'\n'

IFS=:

IFS=','

IFS.OLD=$IFS

IFS=$'\n'

...

IFS=$IFS.OLD