Shell脚本之循环语句和转义字符(for、while、until用法和例题)

一、for语句

在这里插入图片描述

for 变量名 in 取值列表
do
  命令序列
done
示例:计算从1到100所有整数的和
#!/bin/bash
sum=0
for ((i=1;i<=100;i++ ))
do
  sum=$(($sum + $i))

done
  echo "1-100以内的整数和为:$sum"

在这里插入图片描述
在这里插入图片描述

示例:过滤出从1到100所有整数的奇偶数
#!/bin/bash
echo -n  "偶数 "
for ((i=1;i<=100;i++))
do
 a=$[ $i%2 ]
if [ $a = 0 ]
 then       
 echo -n "$i,"
fi          
done        
echo -n  "奇数 "
for ((i=1;i<=100;i++))
do            
 a=$[ $i%2 ]
if [ $a = 1 ]
 then
 echo -n "$i,"
fi
done

在这里插入图片描述
在这里插入图片描述

示例:提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
#!/bin/bash

sum=0
read -p "请输入小于100的整数:" a
if [ $a -lt 100 ]&>/dev/null
  then
    for((i=1;i<=$a;i++))
    do
      sum=$(($sum+$i))
    done
      echo "1到$n的所有整数和为$sum"
 elif [ $a -ge 100 ]&>/dev/null
   then
   echo "错误,输入的整数大于100" 
 else
  echo "请正确输入整数"
fi

在这里插入图片描述在这里插入图片描述

示例:求从1到100所有整数的偶数和、奇数和
#!/bin/bash

sum1=0
sum2=0
for((i=1;i<=100;i++))
do
  if [ $( expr $i % 2 ) -eq 0 ]
  then
     sum2=$(($sum2+$i))
  else
     sum1=$(($sum1+$i))
  fi

done

    echo "100以内的奇数和为:$sum1"
    echo "100以内的偶数和为:$sum2"

在这里插入图片描述
在这里插入图片描述

二、while语句

在这里插入图片描述

while 条件测试操作
do
  命令序列
done
示例:计算从1到100所有整数的和
#!/bin/bash

sum=0
i=0
while
 [ $sum -lt 100 ]
do
let sum++
i=$[ $sum + $i ]
done
echo $i

在这里插入图片描述
在这里插入图片描述

示例:过滤出从1到100所有整数的奇偶数
#!/bin/bash

i=1
while [ $i -lt 100 ]
do
a=$[ $i % 2 ]
if [ $a -eq 1 ]
 then
  echo -e "奇数为:" "$i\t"
fi

let i++
done


b=1
while [ $b -le 100 ]
do
c=$[ $b % 2 ]
if [ $c -eq 0 ]
 then
  echo -e "偶数为:""$b\t"
fi
let b++

done

在这里插入图片描述
奇数:
在这里插入图片描述
偶数:
在这里插入图片描述

示例:提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和
#!/bin/bash

i=0
sum=0
read -p "请输入一个小于100的数:" a
 while [ $i -le $a ]
  do
sum=$[ $i + $sum ]
let i++

done

echo $sum

在这里插入图片描述
在这里插入图片描述

示例:求从1到100所有整数的偶数和、奇数和
#!/bin/bash

i=1
sum1=0
sum2=0
while [ $i -le 100 ]
 do

a=$[ $i % 2 ]
 if [ $a -eq 1 ]
  then
sum1=$[ $sum1 + $i ]
 else
sum2=$[ $sum2 + $i ]
fi
let i++
done
 echo "奇数和为:" $sum1
 echo "偶数和为:" $sum2

在这里插入图片描述
在这里插入图片描述

三、until语法

在这里插入图片描述

until 条件测试操作
do
  命令序列
done
示例:计算1-50的总和
#!/bin/bash

a=0
sum=0
until (($a>50))
do
  sum=$[ $sum + $a ]
  let a++

done
echo $sum

在这里插入图片描述
在这里插入图片描述

四、结束循环——break和continue

1、break

#!/bin/bash

for ((a=1; a<=5; a++))
do
    echo "外循环第$a次"
    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

在这里插入图片描述

在这里插入图片描述

2、continue

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

在这里插入图片描述
在这里插入图片描述

五、转义字符

echo -n 表示不换行输出

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

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

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

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

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

\v 与\f相同

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

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

\\ 表示插入"\"本身

六、IFS字段分隔符

默认包含 空格,制表符,换行符
查看命令:set | grep IFS
IFS=$' \t\n'

修改成只换行
IFS=$'\n'

IFS=:
IFS=','

IFS.OLD=$IFS
IFS=$'\n'
...
IFS=$IFS.OLD

输出环境变量PATH所包含的所有目录以及其中的所有可执行文件
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在shell脚本中,有些字符具有特殊的含义,例如$、*、?、[、]、{、}、|、\等。如果需要在脚本使用这些字符本身的含义,就需要使用转义字符来表示。常见的转义字符包括: 1. \:表示转义字符本身,例如\*表示*字符本身的含义。 2. $:表示变量,如果需要表示$字符本身的含义,需要使用\$。 3. ":表示字符串,如果需要表示"字符本身的含义,需要使用\"。 4. ':表示字符串,如果需要表示'字符本身的含义,需要使用\'。 5. \n:表示换行符。 6. \t:表示制表符。 7. \\:表示反斜杠本身的含义。 需要注意的是,在使用转义字符时,需要根据具体情况进行选择,以确保脚本的正确性。 ### 回答2: Shell脚本是在Linux和其他类Unix系统中使用的一种编程语言,用于执行在命令行下执行各种任务。在Shell脚本中,经常会用到转义字符,以对特殊字符进行转义,以方便正确使用这些字符。常见的转义字符包括反斜杠(\)、双引号("")、单引号('')、美元符号($)等。 首先,反斜杠字符在Shell脚本中表示转义字符,用于将其后的一个字符转义为一个特定的含义。例如,\n表示换行符,\t表示制表符,\r表示回车符等。 其次,双引号字符用于定义包含字符串。在双引号中的所有特殊字符都可以不使用转义字符,如下所示: ``` echo "Hello World!\n" ``` 运行上面的脚本,输出结果为: ``` Hello World! ``` 而不是将\n作为纯文本输出。 但是,单引号不支持转义字符。在单引号中的所有特殊字符都将被当作普通字符处理,如下所示: ``` echo 'Hello World!\n' ``` 输出结果为: ``` Hello World!\n ``` 美元符号用于变量扩展,可以将其后的变量名解析为其实际的值。如果想要在脚本中输出美元符号本身,则需要使用转义字符\$,如下所示: ``` echo "The cost is \$10." ``` 输出结果为: ``` The cost is $10. ``` 此外,还有其他一些转义字符,如\0表示空字符,\b表示退格,\a表示警报等。在编写Shell脚本时,需要注意使用转义字符,以便正确运行脚本,并避免出现错误。 ### 回答3: 在shell脚本中,有些字符被用来表示特殊含义,如引号、通配符、变量等,如果需要在脚本使用这些字符的实际意义,需要使用转义字符来表示。 在shell脚本中,反斜线(\)被用作转义字符。当反斜线遇到特定字符时,就会将这些特定字符的含义转义成字符本身的含义,这样就能够在脚本使用它们的实际意义了。 例如,如果需要在脚本使用引号,可以使用转义字符\将其转义。如下所示: ``` echo "\"Hello, world!\"" ``` 输出的结果为: ``` "Hello, world!" ``` 同样地,如果需要在脚本使用反斜线本身,也需要使用转义字符。如下所示: ``` echo "\\" ``` 输出的结果为: ``` \ ``` 另外,在使用转义字符时需要注意,在一些情况下需要使用多个转义字符来表示一个特殊字符的实际含义。如在正则表达式中,需要使用两个反斜线来表示一个反斜线字符。 总之,使用转义字符可以使得shell脚本中的字符按照其实际含义被解释和处理,因此熟练掌握转义字符使用是编写有效shell脚本的关键。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值