linux shell的基础使用(for循环,if、case逻辑判断,continue 、break、exit 循环 )

data 时间

shell 中data 表达时间的选项
sh -x 跟脚本名 可以插查看脚本执行信息

%Y (年)、 %m(月)、%d (日)、%H(时)、%M(分)、%S(秒)、%w(周)W(一年中的第几周)

#data +%Y
#2021
#data +%F   或者 data +%Y-%m-%d
#2021-11-14
#data +%T   /  data +"%Y-%m-%d %H:%M:%S"
#20:22:33   / 2021-11-14 20:22:33
#data +%w
#1      表示星期一
#data +%W
#25     表示一年中的第25周  
#echo "365/7"|bc   算法除周(w)“bc 可以理解为计算器”
#52                结果是52周(w)

也可以查看shell编程昨天、明天、明年、下周.......的时间,也可显示到系统/运维秒。

if 逻辑判断

if中判断符号的表示"&系统/运维gt; gt、< lt、>= ge、<= le、== eq、!= ne" "[]"中不能使用><...这种符号要使用gt、lshellt......

if [ -z %a] 表示当变量a的值为空时会怎么样 (-z 判断一个值是否为空)
if grep -qshell脚本 '123'系统运维工程师 1.txt ; then 表示如果1.txtlinux重启命令中含有123的行时会怎么样
if [ ! -e file ] ; then 表示文件不存在linux系统安装时会怎么样
if ((%a<1)) ; then....等同于 if [ %a -lt 1] ; then....

#!/bin/bash          脚本注释
a=1                  测试用(随便写的)
if [ %a == 2 ]       if开始 [] 中写条件 注意括号中两边要有空格
then                 上边条件构成则输出下方信息
  echo "true"
elif [ asdas ]       elif 另一个新判断条件
then 
  echo "no false"
else                 与then相反,表示否则
  echo "false"
fi                    结束语  

read

read -p "提示语" (引号中写什么执行脚本时就会出现什么,-t 是设置超时时间)

#!/bin/bash
read -t 10 -p "填写提示词"     

case 逻辑判断

#!/bin/bash
read -p "Please input a namber: " n      请输入一个数字   (n表示数字)
n1= `exho $n|sed 's/[0-9]//g'`          (n1=n) 使用sed删除0-9数字
if [ ! -z $n1 ]                            如果n1 不为空时 "!"取反
then
    echo "Please input a namber."
    exit 1                                退出
fi
n2=$[$n%2]                               表示n2等于$n 除以2 的结果
case $n2 in                               case判断 $n2 (in)在判断对象是什么的时候
    0)                                    判断对象
        echo "偶数"                        如果是0的时候输出的结果
        ;;                                格式符号
    1)                                    
        echo "奇数"                        如果是1的时候
        ;;   
    *)                                   如果时其他用*代替表示
        echo "Please input a number"
        ;;
esac                                       case的结束语        

或者换个思路来了解case 使用多个if判断

#!/bin/bash
read -p "Please input a namber: " n      请输入一个数字   (n表示数字)
n1= `exho $n|sed 's/[0-9]//g'`          (n1=n) 使用sed删除0-9数字
if [ ! -z $n1 ]                            如果n1 不为空时 "!"取反
then
    echo "Please input a namber."
    exit 1                               退出
fi                                       (即是纯数字又是0-100的范围)
if [ $n -lt 60 ]                          如果$n小于60则输出tag=1
then 
    tag=1
elif [ $n -ge 60 ] && [ $n -lt 80 ]         如果$n大于等于60并且小于80....
then
    tag=2
elif [ $n -ge 80 ] && [ $n -lt 90 ]         如果$n大于等于80并且小于90......
then
    tag=3
elif [ $n -ge 90 ] && [ $n -le 100 ]
then   
    tag=4
case $tag in                               case判断 tag (in)在判断对象是什么的时候
    0)                                    判断对象
        echo "不及格"                        如果是0的时候输出的结果
        ;;                                格式符号
    1)                                    
        echo "及格"                        如果是1的时候
        ;;   
    2|3)                                 表示2或者3
        echo "优秀"
        ;;
    *)                                   如果时其他用*代替表示
        echo "The number range is 0-100"  如果$n小于零并且大于100则提示输入的不是0-100内的数字
        ;;
esac                                       case的结束语    

for 循环

seq 数字序列

例:#for i in `seq 1 10`; do echo $i; done   循环一到十 


                                            linux shell的基础使用(for循环,if、case逻辑判断,continue 、break、exit 循环 )
例: 写一个一到一百的和 for循环的脚本linux重启命令

#!/bin/bash
sum=0                         定义sum=0
for i in `seq 1 100`           循环
do                             执行动作
    sum=$[$sum+$i]   
    echo $i                    为了更详细的列出过程,可以不加
done                           输出结果
echo $sum                     

sh -x 跟脚本名 查看详细过程


                                            linux shell的基础使用(for循环,if、case逻辑判断,continue 、break、exit 循环 )

continue 循环

#!/bin/bash
for i in `seq 1 5`               
do 
    echo $i
    if [ $i == 3 ]
    then
        continue         基于上述条件 continue的作用就是当 $i == 3 时,即停下本次for的内部循环,继续新的循环。
    fi
    echo $i
done    

breshell编程ak 循环

#!/bin/bash
for i in `seq 1 5`
do
    echo $i
    if [ $i == 3 ]
    then
        break           基于上述条件 break的作用就是当 $i  == 3 时 即停下退出整个for的内部循环。但退出之后可以执行下面别的新任务。
    fi
    echo $i
done


                                            linux shell的基础使用(for循环,if、case逻辑判断,continue 、break、exit 循环 )

exit 循环

#!/bin/bash
for i in `seq 1 5`
do 
    echo $i
    if [ $i ==3 ]
    then
        exit         基于上述条件exit的作用就是当 $i  == 3 时 即停下直接退出脚本,不做别的任务。
    fi
    echo $i
done