shell脚本入门级教程(变量、判断、循环)

  • Post author:
  • Post category:其他



编写shell脚本之前我们需要知道什么是shell脚本,shell脚本能做什么。

一.简介


什么是shell脚本

  • 将要执行的Linux命令保存到一个文件中,然后通过执行这个文件来批量自动执行命令


作用

  • 批量执行操作

  • 重复执行操作


二.编写shell脚本的基本流程

1.#使用vim在/home/下创建一个名为demo1.sh的文件
[root@localhost ~]# vim /home/demo1.sh
2.#在.sh文件中输入内容,脚本内容第一行格式固定
#!/bin/bash
3.#输入一些基本命令#创建一个名为tom的用户
useradd tom
#touch /home/a.doc              #在home下创建一个名为a.doc的文件
保存内容并退出
4.为脚本设置执行权限chmod +x /home/demo1.sh
5.执行脚本方法1:bash 脚本名
[root@localhost ~]# bash /home/demo1.sh
方法2:./脚本名[root@localhost ~]# ./demo1.sh

三.变量

  • 定义变量:变量名=变量值

  • 获取变量:$变量名

    # 定义变量
    [root@localhost ~]# name=tom
    [root@localhost ~]# addr=shanxi
    [root@localhost ~]# tel=176xxxxxxxx
    [root@localhost ~]# mail=xxxx@.com
    #使用变量进行输出#
    echo:打印输出一个结果到屏幕
    [root@localhost ~]# echo "我的姓名是$name,我的家在$addr, 我的电话是$tel"输出结果:我的名字是tom,我的家在shanxi,我的电话号码是176xxxxxxxx,我的邮箱是xxxx@.com

    四.判断

  • 单分支语句结构

    if [ 条件表达式 ]; then    
    指令
    fi
    #这段代码的意思是满足[ 条件表达式 ]中的条件则进行指令中的命令
  • 双分支语句结构

    if [ 条件表达式 ]; then 
       指令一
    else    指令二
    fi
    #这段代码的意思是满足[ 条件表达式 ]中的条件则进行指令一中的命令
    #如果不满足[ 条件表达式 ]中的条件则进行指令二中的命令
  • 多分支语句结构

    if [ -f file ]; then
       echo "yes yes yes"
    elif [ -d file ]; then   
    echo "yes yes"
    else   
    echo "nonono"
    fi
    #这段代码的意思是满足[ -f file ]中的条件则输出yes yes yes
    [ -f file ]  测试file存在为真且是一个常规文件
    #如果不满足[ -f file ]中的条件则在进行判断[ -d file ]条件满足则输出yes yes 
    [ -d file ]  测试file存在为真且是一个目录文件
    #如果不满足[ -d file ]则输出nonono


    注意 if的结构为 if then  else  fi


    从上面三个结构中可以看出,条件表达式的左右,以及[ ]的左右都要有空格。

数字表达式

int1 -eq int2    两数相等为真
int1 -ne int2    两数不等为真 
int1 -gt int2    int1大于int2为真 
int1 -ge int2    int1大于等于int2为真 
int1 -lt int2    int1小于int2为真 
int1 -le int2    int1小于等于int2为真

五.循环


for语句结构


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

#!/bin/bash
for num in {1..10}do    
echo $num    
sleep 1
done
#创建一个变量num变量的取值为{1..10}循环#输出num变量  sleep表示间隔为 1S

while循环

 #!/bin/bash   
a=$[$RANDOMP0]                           #在500中取随机数                
while true                                  
do        
read -p "enter a number: " input                   
if [[ $input -gt $a ]];then              #判断变量input是否大于变量a          
echo "big"                          #大于a则输出 big          
continue                            #终止当前重新进行循环    
elif [[ $input -lt $a ]];then             #判断变量input是否小于变量a          
echo "little"                       #小于则输出 little          
continue            
else          
echo "equal"                                  
exit                                #停止程序      
fi  done  

until循环


重复测试某个条件,只要条件不成立则反复循环

#!/bin/bashn=1until 
[ $n -gt 50 ];               #创建一个条件 $n大于50
do                      
let  sum+=$n                  #计算 sum+=变量n     
let  n++                      #n++每次循环加一  
done    
echo "$sum"                    #输出变量sum


以上就是shell脚本中的基本内容



版权声明:本文为weixin_67281781原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。