在linux环境中,我们通常会使用‘tar -xvf x.tar’这样的指令,其中“-xvf x.tar”就是命令行参数。
在bash脚本中,如果希望我们可以使用类似于‘bash_name.sh -x x.tar’的指令去指定如何运行脚本,则我们可以使用getops.
getops会使用类似于以下格式去解析我们的命令行参数:
# 1. -s -r can be used directly
# 2. d:/f: can be used -d/-f parameters
# The arguments would be parsed as $OPTARG
# 3. $OPTIND is another parameter getops provided as default.
# It will helps us to get the current index of the command argument
while getopts 'srd:f:' c
do
echo "Processing $c : OPTIND is $OPTIND"
case $c in
s) ACTION=SAVE ;;
r) ACTION=RESTORE ;;
d) DB_DUMP=$OPTARG ;;
f) TARBALL=$OPTARG ;;
esac
done
以上脚本并不能运行, 目前只是定义了一些变量,并没有实际的操作,则我们可以补充一些函数,来看一下其是如何工作的。
#!/usr/bin/env bash
set -eo pipefail
save_database()
{
echo "I am saving database $1"
}
restore