小弟初学shell
如何实现类似 801x -u root -p 123456
getopts 的 $OPTARG只能获得一个参数值啊,第二个如何获得?
[问题]请教getopts问题
- liujingjing5
- 帖子: 512
- 注册时间: 2006-10-12 1:21
- liujingjing5
- 帖子: 512
- 注册时间: 2006-10-12 1:21
-
- 帖子: 1331
- 注册时间: 2006-07-09 12:22
- 来自: 南京
- liujingjing5
- 帖子: 512
- 注册时间: 2006-10-12 1:21
-
- 帖子: 1331
- 注册时间: 2006-07-09 12:22
- 来自: 南京
在用户正确输入readbook格式情况下,getopts很有用。例如u,w两个选项:
但是getopts除了在你给它的参数之中匹配不到会报错以外,不会帮你去找别的错误。例如输入:
getopts会将"-w"字符赋给$name变量,中介就是$OPTARG,此变量是getopts命令自建的。
所以,排错的任务还得自己完成,至少getopts可能无法胜任了吧,除非你再去判断$OPTARG值中有无连字符,而这样好像又有点得不偿失了。
代码: 全选
#!/bin/bash
lastnumber=$#
while getopts u:w: option
do
case $option in
u) name=$OPTARG;;
w) word=$OPTARG;;
\?) echo "Error! ... " && exit 1;;
esac
done
readbook -u $name -w $word $lastnumber
代码: 全选
readbook -u -w 欢迎词 路径
所以,排错的任务还得自己完成,至少getopts可能无法胜任了吧,除非你再去判断$OPTARG值中有无连字符,而这样好像又有点得不偿失了。