378 发表于 2018-8-30 08:17:15

Linux之部分shell脚本练习

  #键盘键入两个整数,并计算它们之和
  #!/bin/bash
  #
  #echo -n "Input two Intergers:"
  read -t 5 -p "Input two Intergers:" A B
  [ -z $A ] && A=100
  [ -z $B ] && B=200
  echo "$A plus $B is:$[$A+$B]"
  #归档文件的脚本
  #!/bin/bash
  #
  read -p "Three files:" FILE1 FILE2 FILE3
  read -p "Destination:" DEST
  read -p "Compress:" COMP
  case $COMP in
  gzip)
  tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
  ;;
  bzip2)
  tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
  ;;
  xz)
  tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
  xz ${DEST}.tar
  ;;
  *)
  echo "Unknown."
  exit 9
  ;;
  esac
  脚本编程:
  顺序结构
  选择结构
  if
  case
  循环结构
  for
  while
  until
  while循环:试用于循环次数未知的场景
  语法:
  while CONDITION; do
  statement
  ...
  done
  #计算100以内和
  #!/bin/bash
  #
  declare -i I=1
  declare -i SUM=0
  while [ $I -le 100 ]; do
  let SUM+=$I
  let I++
  done
  echo $SUM
  #输入字符串,提示要修改成大写的,如果是quit,则退出。
  #!/bin/bash
  #
  read -p "Input something:" STRING
  while [ $STRING != 'quit' ];do
  echo $STRING | tr 'a-z' 'A-Z'
  read -p "Input something:" STRING
  done
  #查看用户hadoop是否登录
  #!/bin/bash
  #
  who | grep "hadoop" &>/dev/null
  RETVAL=$?
  while [ RETVAL -ne 0 ];do
  echo "date ,hadoop is not logged"
  sleep 5
  who | grep "hadoop" &>/dev/null
  RETVAL=$?
  done
  echo "hadoopis logged in."
  ----------------------------
  
页: [1]
查看完整版本: Linux之部分shell脚本练习