笔记
#位置参数可以超过9个
#shift n每个将参数位置向左偏移n位
#编辑文件
vi opt2
#ne 不等于
#lt 小于
#查看opt2文件内容
[root@localhost 0417]# cat opt2
#!/bin/bash
#opt2
usage()
{
echo "usage:`basename $0` filenames"
}
totalline=0
if [ $# -lt 2 ]
then
usage
exit
fi
while [ $# -ne 0 ]
do
line=`cat $1|wc -l`
echo "$1 : ${line}"
totalline=$[ $totalline+$line ]
shift
done
echo "---------"
echo "total:${totalline}"
#拷贝文件
[root@localhost 0417]# cp ../0416/func* .
#改变权限
[root@localhost 0417]# chmod 755 opt2
#执行
[root@localhost 0417]# ./opt2
usage:opt2 filenames
#执行 加一个参数
[root@localhost 0417]# ./opt2 func
usage:opt2 filenames
#执行 加2个参数 正常统计
[root@localhost 0417]# ./opt2 func func2
func : 9
func2 : 9
---------
total:18
#getopts 获得多个命令行参数
#编辑
vi optgets
#改变权限
[root@localhost 0417]# chmod 755 optgets
#查看文件内容
[root@localhost 0417]# cat optgets
#!/bin/bash
ALL=false
HELP=false
FILE=false
VERBOSE=false
while getopts ahfvc OPTION
do
case $OPTION in
a)
ALL=true
echo "ALL is $ALL"
;;
h)
HELP=true
echo "HELP is $HELP"
;;
f)
FILE=true
echo "FILE is $FILE"
;;
v)
VERBOSE=true
echo "VERBOSE is $VERBOSE"
;;
c)
echo "c value is $c"
;;
\?)
echo "`basename $0` -[a h f v] -[c value] file "
;;
esac
done
#执行 加参数a
[root@localhost 0417]# ./optgets -a
ALL is true
#执行 加参数a、h
[root@localhost 0417]# ./optgets -a -h
ALL is true
HELP is true
#执行 加参数a、h、d。d为未知参数,报错
[root@localhost 0417]# ./optgets -a -h -d
ALL is true
HELP is true
./optgets: illegal option -- d
optgets -[a h f v] -[c value] file
#执行 加参数a、h、c,c后不加内容
[root@localhost 0417]# ./optgets -a -h -c
ALL is true
HELP is true
c value is
##执行 加参数a、h、c,f后加内容,但仍然不打印
[root@localhost 0417]# ./optgets -a -h -c ff
ALL is true
HELP is true
c value is
#重新编辑
vi optgets
#查看
[root@localhost 0417]# cat optgets
#!/bin/bash
ALL=false
HELP=false
FILE=false
VERBOSE=false
while getopts ahfvc: OPTION
do
case $OPTION in
a)
ALL=true
echo "ALL is $ALL"
;;
h)
HELP=true
echo "HELP is $HELP"
;;
f)
FILE=true
echo "FILE is $FILE"
;;
v)
VERBOSE=true
echo "VERBOSE is $VERBOSE"
;;
c)
#将传入的参数赋值给c
c=$OPTARG
echo "c value is $c"
;;
\?)
echo "`basename $0` -[a h f v] -[c value] file "
;;
esac
done
#执行 加参数a、h、c,c后加内容ff,发现正常打印
[root@localhost 0417]# ./optgets -a -h -c ff
ALL is true
HELP is true
c value is ff
#执行 加参数a、h、c,c后不加内容,报错
[root@localhost 0417]# ./optgets -a -h -c
ALL is true
HELP is true
./optgets: option requires an argument -- c
optgets -[a h f v] -[c value] file
附图
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [CSDN博客] |