【Shell】从命令行读取参数的三种方式

2017-09-01  本文已影响27人  lndyzwdxhs

0x01 直接使用

直接按照参数位置12 $3 ......来获取参数

0 :即命令本身,相当于c/c++中的argv[0]1 :第一个参数.
2,3, 4 ... :第2、3、4个参数,依次类推。# 参数的个数,不包括命令本身
@ :参数本身的列表,也不包括命令本身* :和@相同,但"" 和 "@"(加引号)并不同,""将所有的参数解释成一个字符串,而"$@"是一个参数数组。

0x02 getopts函数

getopts函数接受两个参数。第一个参数是字符串,使用冒号来区分该选项是否需要参数值;getopts从命令中获取这些参数,并且删去了“-”,并将其赋值在第二个参数中。

while getopts ":e:f:" opt
do
    case $opt in
        e)
            DEPLOY_ENV=$OPTARG
            ;;
        f)
            ZIP_PATH=$OPTARG
            ;;
        ?)
            echo "args error!"
            exit 1
            ;;
    esac
done

$OPTARG必须是大写字母。

不能处理长选项,需要使用第三种方式。

0x03 getopt

【待续】


欢迎关注微信公众号(coder0x00)或扫描下方二维码关注,我们将持续搜寻程序员必备基础技能包提供给大家。


上一篇 下一篇

猜你喜欢

热点阅读