Bash脚本 - 如何使选项优先级比其他优先级更重要

时间:2015-10-11 11:39:27

标签: bash

我的脚本优先考虑我的问题。 例如,当我调用我的脚本./script -q -h时,它应该返回h选项,该选项应该具有比其他选项更重要的优先级。我的代码如下:

#!/bin/bash
function usage
{       

echo "Echoing login, name, surname of the invoker

where:
-h  help
-q  quit(don't proceed script)"
}
function invalid
{
echo "Invalid argument!
"
usage
}
while [ "$1" != "" ]; do
   case $1 in
     -h | --help )           usage
                             exit
                             ;;
     -q | --quit )           exit
                             ;;
     * )                     invalid
                             exit 1
   esac
 shift
done

echo $USER
getent passwd $USER | cut -d: -f5 | cut -d, -f1

2 个答案:

答案 0 :(得分:0)

->next项检查中,只需设置变量(例如caseopt_h=1)。

然后以任何你想要的顺序检查变量:

opt_q=1

答案 1 :(得分:0)

我这样做的方法是在case块中设置一个变量。 即。

while [ "$1" != "" ]; do
    case $1 in
        -h | --help ) DOHELP=true
                      ;;
        -q | --quit ) DOQUIT=true
                      ;;
        * )           echo "Invalid arg"
                      exit 1
    esac
    shift
done

if [ -n "$DOHELP" ]; then
   usage
   exit 0
fi

if [ -n "$DOQUIT" ]; then
    exit 0
fi