shell getopt 获取参数
#!/bin/sh #说明 show_usage="args: [-i , -p , -u , -w , -a , -s , -d , -v ] [--ip=, --port=, --user=, --pwd=, --path=, --script=, --debug=, --version=]" #参数 opt_ip="" opt_port="" opt_user="" opt_pwd="" opt_path="" opt_script="" opt_debug="" opt_version="" GETOPT_ARGS=`getopt -o i:p:u:w:a:s:d:v: -al ip:,port:,user:,pwd:,path:,script:,debug:,version: -- "$@"` eval set -- "$GETOPT_ARGS" #获取参数 while [ -n "$1" ] do case "$1" in -i|--ip) opt_ip=$2; shift 2;; -p|--port) opt_port=$2; shift 2;; -u|--user) opt_user=$2; shift 2;; -w|--pwd) opt_pwd=$2; shift 2;; -a|--path) opt_path=$2; shift 2;; -s|--script) opt_script=$2; shift 2;; -d|--debug) opt_debug=$2; shift 2;; -v|--version) opt_version=$2; shift 2;; --) break ;; *) echo $1,$2,$show_usage; break ;; esac done if [[ -z $opt_ip || -z $opt_port || -z $opt_user || -z $opt_pwd || -z $opt_path || -z $opt_script || -z $opt_debug || -z $opt_version ]]; then echo $show_usage echo "opt_ip:"$opt_ip",opt_port:"$opt_port",opt_user:"$opt_user",opt_pwd:"$opt_pwd",opt_path:"$opt_path",opt_script:"$opt_script",opt_debug:"$opt_debug",opt_version:"$opt_version exit 0 fi #开始处理 #ip port user pwd 连接服务器 #script path debug version 作为参数执行
eval set -- "$GETOPT_ARGS" eval关键字是必须的,网上好多例子没有,坑爹
GETOPT_ARGS=`getopt -o i:p:u:w:a:s:d:v: -al ip:,port:,user:,pwd:,path:,script:,debug:,version: -- "$@"`
最后的--也是必须的,网上好多例子也没有,坑爹
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。