bash – 如果没有提供选项,有getopts显示帮助
发布时间:2020-12-15 22:36:21  所属栏目:安全  来源:网络整理 
            导读:我解析了一些类似的问题,但这些问题并不适合我. 我有这个很棒的bash脚本,可以执行一些很酷的功能,这里是代码的相关部分: while getopts ":hhelpf:d:c:" ARGS;do case $ARGS in h|help ) help_message 2 exit 1 ;; f ) F_FLAG=1 LISTEXPORT=$OPTARG ;; d ) D
                
                
                
            | 
                         
 我解析了一些类似的问题,但这些问题并不适合我. 
  
  
我有这个很棒的bash脚本,可以执行一些很酷的功能,这里是代码的相关部分: while getopts ":hhelpf:d:c:" ARGS;
do
    case $ARGS in
        h|help )
            help_message >&2
            exit 1
            ;;
        f )
            F_FLAG=1
            LISTEXPORT=$OPTARG
            ;;
        d )
            D_FLAG=1
            OUTPUT=$OPTARG
            ;;
        c )
            CLUSTER=$OPTARG
            ;;
        ? )
            echo ""
            echo "Unimplemented option: -$OPTARG" >&2
            echo ""
            exit 1
            ;;
        : )
            echo ""
            echo "Option -$OPTARG needs an argument." >&2
            echo ""
            exit 1
            ;;
        * )
            help_message >&2
            exit 1
            ;;
    esac
done 
 现在,如果触发,我的所有选项都运行良好.我想要的是getopts在没有触发选项时吐出help_message函数,比如脚本只是在没有参数的情况下启动./scriptname.sh. 我在这里看到了一些方法,实现了IF循环和函数,但是,因为我刚开始使用bash并且我已经在这个脚本上有一些IF循环,我想知道是否有一种更简单(和漂亮)的方法来这个. 解决方法
 如果您只想检测没有选项调用的脚本,那么只需在脚本中检查$#的值,然后在消息为0时退出. 
  
  
        如果你想捕获没有传递选项参数的情况(但是非选项参数)仍然传递,那么你应该能够在getopts循环之后检查OPTIND的值,并在它为1时退出(表示第一个参数)是一个非选项参数). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
