case分支判断结构 


语法:


case 变量名称 in

value1)

statement

statement

;;

value2)

statement

statement

;;

value3)

statement

statement

;;

       *)

statement

statement

;;

esac



编写脚本,判断用户输入的字符串


#!/bin/bash

#


read -p "Enter string: " str 


case $str in

   linux|Linux)

     echo "windows."

     ;;

   windows|Windows)

     echo "linux."

     ;;

   *)

     echo "other."

     ;;

esac



特殊变量:

位置变量

$1, $2 ,$3 ,$4 ...... $9, ${10}, 


$1: 命令的第1个参数 


$0 命令本身 


$# 命令参数的个数



使用位置变量:


#!/bin/bash

#


case $1 in

  linux)

    echo "windows."

    ;;

  windows)

    echo "linux"

    ;;

  *)

    echo "other"

    ;;

esac




#!/bin/bash

#


if [ -z $1 ]; then

  echo "用法:./11.sh {linux|windows|other}"

  exit 9

fi


case $1 in

  linux)

    echo "windows."

    ;;

  windows)

    echo "linux"

    ;;

  *)

    echo "other"

    ;;

esac



使用$#判断参数是否正确 


#!/bin/bash

#


if [ $# -ne 1 ]; then

  echo "用法:./11.sh {linux|windows|other}"

  exit 9

fi


case $1 in

  linux)

    echo "windows."

    ;;

  windows)

    echo "linux"

    ;;

  *)

    echo "other"

    ;;

esac




[root@shell ~]# basename /etc/sysconfig/network-scripts/ifcfg-eth0 >>>获取文件名称

ifcfg-eth0


[root@shell ~]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0 >>>获取文件所在的目录名称 

/etc/sysconfig/network-scripts

[root@shell ~]#