当我们编写的 Shell 脚本只接收一个命令行选项时,使用 case 语句对其进行处理是比较方便的。
下面是一个简单的使用示例:
#! /bin/bash
# 将第一个命令行参数赋值给变量 opt
opt=$1
# 将第二个命令行参数赋值给变量 filename
filename=$2
# 定义函数 checkfile
checkfile() {
# 如果没有指定文件名,则显示缺少文件名,并退出脚本的运行
if [ -z $filename ]
then
echo "File name missing"
exit 1
elif [ ! -f $filename ]
then
echo "The file $filename doesn't exist!"
exit 2
fi
}
case $opt in
-e|-E)
checkfile
echo "Editing $filename file..."
;;
-p|-P)
checkfile
echo "Displaying $filename file..."
;;
*)
echo "Bad argument!"
echo "Usage: `basename $0` -e|-p filename"
echo " -e filename : Edit file."
echo " -f filename : Display file."
;;
esac
调用上述脚本的运行效果:
本文参考自 《Linux Shell命令行及脚本编程实例详解 》