|
发表于 2004-5-10 11:28:22
|
显示全部楼层
回复: 一句很简单的code,好心人帮我看一下,谢谢
最初由 lionheart28 发表
if [ [ $1 = "-d" -o $1 = "-y" ] -a \
[ expr "$2" + 0 > /dev/null 2>&1 ] -a \
[ $3 != "-v" -a $3 != "-h" -o !-z $3 ] ];then
...
我想表达的是:$1是-d或-y,且$2是数字,且$3不空而且不是-v和-h
请问上面的code错在哪里?应该怎么写?
谢谢
逻辑关系混乱 ;)
这样试试看:
- #检查位置参数个数,如果不是3个,那么提示出错信息
- (($#!=3))&&{ echo "Usage: $(basename $0) arg1 arg2 arg3";exit 1; }
- #你要表达的意思~
- if [[ ($1 == "-y" || $1 == "-h") && $2 == [0-9]* && ($3 != "-v" || $3 != "-h") ]];then
- ...
- fi
复制代码 |
|