小编Tra*_*efi的帖子

GETOPTS 解析空和非空参数

我正在尝试制作具有两个开关 -h 和 -d 的脚本,-d 具有强制数字参数。在它之后将有不确定数量的文件路径。到目前为止,我有这个,但代码似乎无法识别无效的开关 -r(可以是任何名称),并且在我不输入任何开关时也不起作用:

while getopts ":hd:" opt; do
case $opt in
    h)
            echo $usage
        exit 0
            ;;
    d)
        shift 2
            if [ "$OPTARG" -eq "$OPTARG" ] ; then # ako dalsi argument mame cislo
            depth=$OPTARG
        fi
            ;;
        \?)
        shift 1
            ;;
        :)
            shift 1
            ;;
esac
done
echo $1
Run Code Online (Sandbox Code Playgroud)

当我输入时./pripravne1.sh -d /home/OS/test_pz/test2我得到./pripravne1.sh: [: /home/OS/test_pz/test2: integer expression expected 当我输入时./pripravne1.sh -r /home/OS/test_pz/test2我只得到空字符串。

shell-script getopts

0
推荐指数
1
解决办法
2400
查看次数

标签 统计

getopts ×1

shell-script ×1