• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
love9599
帮助1

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

一.简介

什么是shell脚本

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

作用

  • 批量执行操作

  • 重复执行操作

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

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

三.变量

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

  • 获取变量:$变量名

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

    四.判断

  • 单分支语句结构

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

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

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

    注意 if的结构为 if then  else  fi

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

数字表达式

  1.  
    int1 -eq int2    两数相等为真
  2.  
    int1 -ne int2    两数不等为真
  3.  
    int1 -gt int2    int1大于int2为真
  4.  
    int1 -ge int2    int1大于等于int2为真
  5.  
    int1 -lt int2    int1小于int2为真
  6.  
    int1 -le int2    int1小于等于int2为真

五.循环

for语句结构

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

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

while循环

  1.  
    #!/bin/bash
  2.  
    a=$[$RANDOMP0] #在500中取随机数
  3.  
    while true
  4.  
    do
  5.  
    read -p "enter a number: " input
  6.  
    if [[ $input -gt $a ]];then #判断变量input是否大于变量a
  7.  
    echo "big" #大于a则输出 big
  8.  
    continue #终止当前重新进行循环
  9.  
    elif [[ $input -lt $a ]];then #判断变量input是否小于变量a
  10.  
    echo "little" #小于则输出 little
  11.  
    continue
  12.  
    else
  13.  
    echo "equal"
  14.  
    exit #停止程序
  15.  
    fi done
学新通

until循环

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

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgebjkf
系列文章
更多 icon
同类精品
更多 icon
继续加载