[问题]请教getopts问题
发表于 : 2007-12-28 15:14
小弟初学shell
如何实现类似 801x -u root -p 123456
getopts 的 $OPTARG只能获得一个参数值啊,第二个如何获得?
如何实现类似 801x -u root -p 123456
getopts 的 $OPTARG只能获得一个参数值啊,第二个如何获得?
shift命令执行以后, $@将会保存命令行中剩余的参数, 但是没有之前的$1, 因为被丢弃了.
1 #!/bin/bash
2 # 使用 ./scriptname 1 2 3 4 5 来调用这个脚本
3
4 echo "$@" # 1 2 3 4 5
5 shift
6 echo "$@" # 2 3 4 5
7 shift
8 echo "$@" # 3 4 5
9
10 # 每次"shift"都会丢弃$1.
11 # "$@" 将包含剩下的参数.
跪求,拜托啊~~#!/bin/bash
#readbook
while getopts uw: option
do
case $option in
u)
把-u 后的值传给 name
;;
w)
#欢迎词
把-w后的值传给word
;;
esac
done
echo "$name"
echo "$word"
cat $(路径)
但是要是用户写成这样怎么办啊?aBiNg 写了:$#获得参数个数,options的位置一般都在奇数位,可以通过$#配合shift去获得前面的options。
代码: 全选
#!/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 欢迎词 路径