0

スクリプトに渡される引数を確認しようとしています。最小で 2 つの引数が必要で、最大で 3 つの引数を指定できます。存在する場合、3 番目の引数は "-I" である必要があります。私はこれを行うことができましたが、機能していません。

if [  \( ! $# = 2 \) -o \( $# = 3 -a "$3" != "-I" \)  ];then
exit 0
fi

私は何を間違っていますか?それを機能させる方法に関する提案はありますか?

4

2 に答える 2

2

ではbash、次のようなことができます。

#!/bin/bash

if [[ $# -eq 3 ]] ; then
    if "$3" != "-I ]] ; then
        echo "Argument 3 must be '-I' if present"
        exit
    fi
fi

if [[ $# -ne 2 && $# -ne 3 ]] ; then
    echo "Needs two or three arguments"
    exit
fi

echo "[$1]"
echo "[$2]"
echo "[$3]"
于 2013-01-30T08:34:07.003 に答える
0

これを試して

#!/bin/bash
MAX_ARGUMENTS=3
echo $#
if [ $# -eq $MAX_ARGUMENTS ]
then
    echo "hi"
    last=${!#}
    if [ $last == "-l" ]
    then
            echo "its l"
    else
            echo "its not l"
    fi
    else
    echo "bye"
fi
于 2013-01-30T08:45:39.970 に答える