shell参数读取实例:

#!/usr/bin/env bash

# u参数表示是否大小,m参数表示要输出的信息
usage() { echo "Usage: $0 [-u] [-m <msg>]" 1>&2; exit 1; }

# getopts 解析脚本命令行选项
while getopts ":um:" o; do
    case "${o}" in
        u)
            upper=true
            ;;
        m)
            msg=${OPTARG}
            ;;
        *)
            usage
            ;;
    esac
done

# 参数左移
shift $((OPTIND-1))

# -z 表示判断是否为空字符串
if [ -z "$msg" ]; then
    msg="test"
fi

# -n 表示判断是否为非空字符串
if [ -n "$upper" ]; then
    echo $msg | tr 'a-z' 'A-Z'
else
    echo $msg
fi


这是一个输出信息的脚本,带上-u参数就将信息大写输出,如:

> ./test.sh -u -m hello
HELLO