[Linux Shell学习系列十]脚本输入处理-2选项处理

D18

通过位置参数调用命令行参数,就要求调用脚本时输入的多个参数顺序必须是固定的。可能引起因输入顺序错误而产生异常的情况。因此为了避免这个情况,也使脚本更加严谨,当编写一个功能复杂的脚本时,我们通常让脚本具有可以指定选项的功能。

像Linux下的许多命令行工具一样,在调用脚本时,可以在命令后面指定不同的选项及命令行参数。

1. 使用case语句处理命令行选项

Shell脚本只接收一个命令行选项时,使用case语句进行处理。

$ cat processFile.sh
#!/bin/bash
#202005

opt=$1
filename=$2

checkfile()
{
        if [ -z $filename ]
        then
                echo "File name missing"
                exit 1

        elif [ ! -f $filename ]
        then 
                echo "The file $filename does not 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"
                exit 3 
                ;;
esac


$ ./processFile.sh 
Bad argument!
Usage: processFile.sh -e|-p filename

$ ./processFile.sh -p
File name missing

$ ./processFile.sh -p list.txt
Displaying list.txt file...

$ ./processFile.sh -E list.txt
Editing list.txt file...

 

2. 使用getopts处理多命令行选项

 

[Linux Shell学习系列十]脚本输入处理-2选项处理

上一篇:在Ubuntu安装IDEA图形界面


下一篇:mysql 处理 NULL