我正在尝试检查传递给脚本的参数。它至少应该有 2 个参数,最多可以有 3 个参数。如果存在,第三个参数应该是“-I”。我虽然可以做到这一点,但它不起作用。
if [ \( ! $# = 2 \) -o \( $# = 3 -a "$3" != "-I" \) ];then
exit 0
fi
我究竟做错了什么?有关如何使其工作的任何建议?
我正在尝试检查传递给脚本的参数。它至少应该有 2 个参数,最多可以有 3 个参数。如果存在,第三个参数应该是“-I”。我虽然可以做到这一点,但它不起作用。
if [ \( ! $# = 2 \) -o \( $# = 3 -a "$3" != "-I" \) ];then
exit 0
fi
我究竟做错了什么?有关如何使其工作的任何建议?
在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]"
Try this
#!/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