shellif多个条件_shell脚本⾃学笔记
  ⼀、 什么是Shell脚本
  shell脚本并不能作为正式的编程语⾔,因为它是在linux的shell中运⾏的,所以称为shell脚本。事实上,shell脚本就是⼀些命令的集合。
  假如完成某个需求需要⼀⼝⽓输⼊10条命令,对于简单的命令,我们可以直接在shell窗⼝中输⼊,但如果是⽐较长且复杂的命令,⼀次⼀次敲就会显得很⿇烦。我们可以把这10条命令都记录到⼀个⽂档中,然后去调⽤⽂档中的命令,这样就能⼀步操作完成,以后再遇到这个需求的时候也只需要调⽤这个⽂档就⾏了,这个⽂档就是shell脚本,只是这个⽂档有它特殊的格式。
  shell脚本能帮我们很⽅便地管理服务器,我们可以指定⼀个任务计划,定时去执⾏某个shell脚本以满⾜需求。
  ⼆、shell脚本的创建和执⾏
  下⾯来编写第⼀个脚本:
  vim first.sh #写⼊下⾯内容
  1
  #!/bin/bash
  ## This is my first shell script.
  ## Writen by lzx 2018-7-27
  date
  echo "Hello World!"
  shell脚本通常都以.sh作为后缀名,不是说不加.sh的脚本不能运⾏,只是⼤家的习惯,这样也⽅便辨识。
  上⾯,第⼀⾏要以#!/bin/bash开头,表⽰该⽂件使⽤的是bash语法,不设置该⾏也可以执⾏,但不符合规范。
  #表⽰注释,后⾯跟⼀些该脚本的相关注释内容,以及作者、创建⽇期或版本等。注释可以省略,但不建议省略,因为我们的记忆⼒有限,没有注释我们⾃⼰都不知道⾃⼰写的脚本是⽤来⼲什么的、是什么时候写的。建议从⼀开始就要养成写脚本的良好习惯,⽅便⾃⼰也⽅便他⼈。
  下⾯来执⾏上⾯的脚本:
  # sh first.sh #⽤sh命令来执⾏
  2018年 07⽉ 27⽇星期五 09:42:54 CST
  Hello World!
  还有⼀种执⾏⽅式:
  # ./first.sh #./表⽰当前⽬录
  -bash: ./first.sh: 权限不够
  # chmod +x first.sh #给执⾏权限
  # ./first.sh
  2018年 07⽉ 27⽇星期五 09:44:09 CST
  Hello World!
  使⽤上⾯⽅法来执⾏shell脚本的前提是脚本本⾝有执⾏权限,所以需要给脚本加⼀个x权限。
  另外,使⽤sh命令来执⾏脚本时,可以加-x选项来查看脚本的执⾏过程:
  # sh -x first.sh
  + date
  2018年 07⽉ 27⽇星期五 09:49:22 CST
  + echo 'Hello World!'
  Hello World!
  三、命令date
  # date #显⽰当前时间
  四、Shell脚本中的变量
  shell脚本中的变量可以是⼀个数值、⼀个命令或者⼀个路径。定义变量的格式为:变量名=变量的值,在脚本中引⽤变量的值时需要加上符号$。
  五、数字运算
  在脚本中进⾏数字运算,也会⽤到变量。
  下⾯再⾃定义⼀个脚本:
  #! /bin/bash
  ## For get the sum of two numbers.
  ## Writen by lzx 2018-7-27
  a=1
  b=2
  sum=$(($a+$b))
  echo "$a+$b=$sum"
  1+2=3
  数学计算要⽤((…))括起来,并且前⾯要加上符号$。
  六、获取⽤户输⼊
  read命令⽤于和⽤户交互,它把⽤户输⼊的字符串作为变量值,⽤法如下:
  #!/bin/bash
  ## Using 'read' in shell script.
  ## Writen by lzx 2018-7-27
  read -p "Please input a number:" x
  read -p "Please input another number:" y
  sum=$[$x+$y]
  echo "The sum of two numbers is:$sum"
  Please input a number:5
  Please input another number:11
  The sum of two numbers is:16
  七、if语句
  不带else
  具体格式如下:
  if 判断语句;then
  command
  fi
  下⾯⾃定义⼀个脚本:
  #!/bin/bash
  read -p "Please input your score: " a
  if ((a<60));then
  echo "You didn't pass the exam."
  fi
  上⾯出现了((a<60))这样的形式,表⽰⾥⾯的是⼀个数学运算,(( ))这是shell脚本特有的格式,只⽤⼀个⼩括号或不⽤括号都会报错,要记住这个格式。
  带有else
  具体格式如下:
  if 判断语句
  then
  command
  else
  command
  fi
  带有elif
  具体格式如下:
  if 判断语句1;then
  command
  elif 判断语句2;then
  command
  else
  command
  fi
  判断数值⼤⼩除了可以使⽤((
  ))的形式外,还可以使⽤[],但不能使⽤>、<、=这样的符号了,要使⽤-lt(⼩于)、-gt(⼤于)、-le(⼩于或等于)、-ge(⼤于或等于)、-eq(等于)、-ne(不等于)。
  ⼋、和⽂档相关的判断
  shell脚本中if还经常⽤于判断⽂档的属性,⽐如判断是普通⽂件还是⽬录,判断⽂件是否可读、写、执⾏权限等。
  if 常⽤的选项有以下⼏个:
  -e :判断⽂件或⽬录是否存在
  -d :判断是不是⽬录以及是否存在
  -f :判断是不是普通⽂件以及是否存在
  -r :判断是否有读权限
  -w :判断是否有写权限
  -x :判断是否有执⾏权限
  具体格式如下:
  if [ -e filename ]
  then
  command
  fi
  ⽰例如下:
  # if [ -d /home/ ]; then echo ok; fi
  ok
  # if [ -f /home/ ]; then echo ok; fi
  /home/是⽬录⽽⾮⽂件,所以在判断它是否为⽂件时并不会显⽰ok。
  九、case逻辑判断
  在shell脚本中,除了使⽤if来判断逻辑外,还可以使⽤case。
  具体格式如下:
  case 变量 in
  value1)
  command
  ;;
  value2)
  command
  ;;
  value3)
  command
  ;;
  *)
  command
  ;;
  esac
  下⾯⾃定义⼀个脚本:
  #!/bin/bash
  read -p "Input a number: " n
  a=$[n%2]
  case $a in
  1)
  echo "The number is odd." # odd:奇数
  ;;
  0)
  echo "The number is even." # even:偶数
  ;;
  *)
  echo "It's not a number!"
  esac
  case脚本常⽤于编写系统服务的启动脚本。
  ⼗、for循环
  具体格式如下:
  for 变量名 in 循环的条件
  do
  command
  done
  下⾯⾃定义⼀个脚本:
  #!/bin/bash
  for i in `seq 1 5`; do # seq 1 5 表⽰从1到5的⼀个序列
  echo $i
  done
  上⾯,循环的条件是引⽤系统命令的执⾏结果seq 1 5,但必须⽤反引号括起来。
  ⼗⼀、while
  ⽇常运维⼯作中,也会经常⽤while循环来编写死循环的脚本,⽤于监控某项服务。
  具体格式如下:
  while 条件
  do
linux循环执行命令脚本
  command
  done
  下⾯⾃定义⼀个脚本:
  #!/bin/bash
  a=6
  while [ $a -ge 1]
  do
  echo $a
  a=$[$a-1]
  done
  另外,可以⽤⼀个冒号:代替循环条件,这样就可以做到死循环。
  ⼗⼆、exit
  exit,它作⽤的范围更⼤,直接退出整个shell脚本
  ⽬前这些是我们常⽤的,毕竟咱不是搞运维的,更多的是⽤它写⼀写简单的脚本来存储命令。下⾯我将以px4安装脚本为例说明shell脚本使⽤:
相关视频学习资料可⾃⾏观看
shell脚本快速⼊门
linux基础
Linux 基础_
- 嵌⼊式/物联⽹-快速上⼿linux -
- 1⼩时全⾯认识Linux⽹络经典案例 -

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。