Shell脚本解析参数

方法一:直接处理

Linux shell中常见的几种变量

$0    命令本身,即脚本文件名
$1 $2 $3 $4  第1、2、3、4个参数,依次类推
$#    参数个数,不包括命令本身
$*    参数本身的列表,不包括命令本身,是一个字符串
$@    和 $* 相同,但"$@"(加双引号)时是一个参数数组
$!    进程PID
$?    上一条命令执行的结果

方法二:使用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后面跟的字符串就是参数列表, 每个字母表示一个选项,如果字母后面带冒号:,表示这个选项会有一个值
  • 参数列表开头的冒号表示忽略错误,如:a:b
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容