for循環:處理命令行參數

將命令行的參數給篩選出來vim

代碼以下:bash

    

[root@youyan 19:58:08~/test]# vim test02.sh       
#!/bin/bash

while getopts a:b:c: opt;do #abc表示參數
  case $opt in
        a) a=$OPTARG;;    #$OPTARG表明參數後面的值
        b) b=$OPTARG;;
        c) c=$OPTARG;;
        *) echo "illegal";;
  esac
done
echo $a
echo $b
echo $c

結果以下ide

[root@youyan 20:02:45~/test]# bash test02.sh  -a 1 -b 2 -c 3
1
2
3

另外,還可使用if語句對其進行判斷,是否爲空,若是爲空則退出。代碼以下命令行

#!/bin/bash

while getopts a:b:c: opt;do
  case $opt in
        a) a=$OPTARG;;
        b) b=$OPTARG;;
        c) c=$OPTARG;;
        *) echo "illegal";;
  esac
done

if [[ -z "${a}" || -z "${b}" || -z "${c}" ]]; then #abc收到參數傳過來的值後,再次檢查是否爲空,若是爲空,則退出
    echo "illegal"; exit 1
fi
echo $a
echo $b
echo $c
相關文章
相關標籤/搜索