shell 学习笔记(三)
http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html
getopt和getopts
带s的简单一点,我称它为simple.
getopts 支持 带参和不带参的短选项
getopt 更进一步支持长选项,支持可选参数。(就是-a 后面可带参数或者不带)
练习一下getopts $OPTIND $OPTARG
systeminfo.sh
usage: -c 查看cpu型号
-m 查看内存大小
-d disk 名称 查看某块硬盘或分区的大小
#!/bin/bash
cpuflag=0
memflag=0
diskflag=0
while getopts ":cmd:" optname
do
case $optname in
c) cpuflag=1
;;
m) memflag=1
;;
d) diskname=$OPTARG
diskflag=1
;;
?)
echo "
Usage: $0 [ -c ] [-m ] [ -d diskname]
eg: $0 -d /dev/hda
"
exit 1
;;
esac
done
if [ X$cpuflag != "X0" ] ;then
cat /proc/cpuinfo | grep "model name" | uniq
fi
if [ X$memflag != "X0" ];then
cat /proc/meminfo | grep "MemTotal:"
fi
if [ X$diskflag != "X0" ];then
fdisk -l $diskname 2>/dev/null | perl -lane "print if /^Disk .*bytes\s*$/ "
fi