
正文
linux shell脚本通过参数名传递参数值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
平常在写shell脚本都是用$1,$2....这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护。Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取。下面的例子定义了短参数名和长参数名两种获取参数值的方式。其实是根据getopt提供的特性进行整理而来。
#!/bin/sh
#说明
show_usage="args: [-l , -r , -b , -w]\
[--local-repository=, --repository-url=, --backup-dir=, --webdir=]"
#参数
# 本地仓库目录
opt_localrepo=""# git仓库url
opt_url=""# 备份目录
opt_backupdir=""# web目录
opt_webdir=""GETOPT_ARGS=`getopt -o l:r:b:w: -al local-repository:,repository-url:,backup-dir:,webdir: -- "$@"`
eval set -- "$GETOPT_ARGS"
#获取参数
while [ -n "$1" ]
do
case "$1" in
-l|--local-repository) opt_localrepo=$; shift ;;
-r|--repository-url) opt_url=$; shift ;;
-b|--backup-dir) opt_backupdir=$; shift ;;
-w|--webdir) opt_webdir=$; shift ;;
--) break ;;
*) echo $,$,$show_usage; break ;;
esac
doneif [[ -z $opt_localrepo || -z $opt_url || -z $opt_backupdir || -z $opt_webdir ]]; then
echo $show_usage
echo "opt_localrepo: $opt_localrepo , opt_url: $opt_url , opt_backupdir: $opt_backupdir , opt_webdir: $opt_webdir"
exit
fi
通过这种方式进行参数值的获取,更易于理解和维护。








