theoforce 发表于 2018-8-20 06:31:35

shell基础下

  第1章 shell基础下
  1.1read基础命令
  shell变量除了可以直接赋值或脚本传参外,还可以使用read命令从标准输入中获得,read为bash内置命令。
  常见语法格式
  read[参数] [变量名]
1.1.1-p
  -p=prompt:设置提示信息
  # read -p "请输入两个数字" V1 V2
  请输入两个数字1 2
  # echo $V1 $V2
  1 2
1.1.2-t
  设置输入等待时间,单位默认为秒
  # read -p "请输入两个数字" -t 5
  请输入两个数字#
1.1.3-n计数
  read -n个数,设置read命令计数输入的字符,当输入的字符数目达到预定数目时自动退出,并将输入的数据赋值给变量。
  # read -p "请输入两个数字"-n 5 -t 10 a b c
  请输入两个数字1 2 3# echo $a
  1
  # echo $b
  2
  # echo $a $b $c
  1 2 3
  案例:实现read 基本读入功能
  # read -t 10 -p "输入一个数字:" num
  输入一个数字:12
  # echo $num
  12
1.2if 条件语句
  对于if条件语句,简单地说,其语义类似于汉语里的“如果。。那么。。”。if条件语句是linux运维人员必掌握的知识!
1.2.1if条件语句的语法

[*]  单分支结构:
  第一种语法:
  if
  then
  指令
  fi
  第二种语法:
  if ;then
  指令
  fi
  上文的“"部分可以是test,[],[[]],(())等条件表达式,甚至可以直接使用命令作为条件表达式。每个if条件语句都以if开头,并且带有then,最后以fi结束。
  第二种语法中的分号相当于命令换行,上面的两种语法含义是相同的。
  条件语句还可以嵌套(即if条件句里面还有if条件句),注意每个if条件句中都要有一个与之对应的fi,每个if和它下面最近的fi成对搭配,语法如下表示:
  if
  then
  if
  then
  fi
  fi
  特殊用法:
  文件条件表达式[-f "$file1"]&&echo 1就等价于下面的if条件语句。
  if [ -f"$file1"];then
  echo 1
  fi
  记忆方法:
  为了便于大家记忆if单分支语句的语法,老男孩给出了形象的语法描述。if条件语句单分支的中文编程就相当于一个女孩对你说:
  如果
  那么
  我就嫁给你
  果如
  案例1 比较两个数字的大小
  read -p "请输入两个字:" x y
  #no.1 判断是否为两个数字
  [ -z "$x" -o -z"$y" ] &&\
  echo "错误:输入两个整数"&&\
  exit 1
  #no.2 判断是数字
  if [   -z"`echo $x|sed 's###g'` " -a   -z " `echo $y|sed's###g'` " ]
  then
  echo " 错误:请输入整数 "
  exit 2
  fi
  exit 2
  fi
  #no.3 比较数字大小
  if [ $x -gt $y ]
  then
  echo "$x > $y"
  else
  if [ $x -lt $y ]
  then
  echo "$x
页: [1]
查看完整版本: shell基础下