方法一:直接處理
Linux shell中常見的幾種變量
$0 命令本身,即腳本文件名
$1 $2 $3 $4 第1、2赫蛇、3、4個(gè)參數(shù)贯莺,依次類推
$# 參數(shù)個(gè)數(shù)藤为,不包括命令本身
$* 參數(shù)本身的列表,不包括命令本身堪唐,是一個(gè)字符串
$@ 和 $* 相同巡语,但"$@"(加雙引號(hào))時(shí)是一個(gè)參數(shù)數(shù)組
$! 進(jìn)程PID
$? 上一條命令執(zhí)行的結(jié)果
方法二:使用getopts獲取
#!/bin/bash
usage() {
echo "
usage:
-d 文件夾
-f 文件
-u 更新
-h 幫助
"
}
while getopts 'd:f:uh' OPT; do
case $OPT in
d)
DIR="$OPTARG"
;;
f)
FILE="$OPTARG"
;;
u)
UPDATE="true"
;;
h)
usage
exit
;;
?)
echo 'unregistered argument'
usage
exit
;;
esac
done
- getopts后面跟的字符串就是參數(shù)列表, 每個(gè)字母表示一個(gè)選項(xiàng)淮菠,如果字母后面帶冒號(hào)
:
男公,表示這個(gè)選項(xiàng)會(huì)有一個(gè)值 - 參數(shù)列表開頭的冒號(hào)表示忽略錯(cuò)誤,如
:a:b