国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Shell腳本傳遞參數的3種方法比較

2019-10-26 18:46:03
字體:
來源:轉載
供稿:網友
#!/bin/bash#extracting command text_text_text_line options as parametershelp_info(){  echo "NAME"  echo "/t$0"  echo "SYNOPSIS"  echo "/t$0 is a shell test about process options"  echo "DESCRIPTION"  echo "/toption like -a -b param1 -c param2 -d"}if [ $# -lt 0 ]then  help_infofinomal_opts_act(){  echo -e "/n### nomal_opts_act ###/n"  while [ -n "$1" ]  do  case "$1" in     -a)      echo "Found the -a option"      ;;    -b)      echo "Found the -b option"      echo "The parameter follow -b is $2"       shift      ;;    -c)      echo "Found the -c option"      echo "The parameter follow -c is $2"      shift      ;;    -d)      echo "Found the -d option"      ;;     *)       echo "$1 is not an option"      ;;  esac  shift  done}#用shell命令自建的選項解析,可以按照自己的想法實現#優點:自己定制,沒有做不到,只有想不到#缺點:麻煩getopt_act(){  echo -e "/n### getopt_act ###/n"  GETOPTOUT=`getopt ab:c:d "$@"`  set -- $GETOPTOUT   while [ -n "$1" ]   do  case $1 in     -a)      echo "Found the -a option"      ;;    -b)      echo "Found the -b option"      echo "The parameter follow -b is "$2""      shift      ;;    -c)      echo "Found the -c option"      echo "The parameter follow -c is "$2""      shift      ;;    -d)      echo "Found the -d option"      ;;    --)      shift      break      ;;     *)       echo "Unknow option: "$1""      ;;  esac  shift  done  param_index=1  for param in "$@"  do    echo "Parameter $param_index:$param"    param_index=$[ $param_index + 1 ]   done}#用getopt命令解析選項和參數#優點:相對與getopts來說是個半自動解析,自動組織選項和參數,用 -- 符號將選項與參數隔開#缺點:相對于getopts的缺點#1.需要與set -- 命令配合,不是必須,需要手動shift#2.選項參數中不支持空格如 -a -b dog -c "earth moon" -d -f param1 param2 就會解析錯誤getopts_act(){  echo -e "/n### getopts_act ###/n"  while getopts :ab:c:d ARGS  do  case $ARGS in     a)      echo "Found the -a option"      ;;    b)      echo "Found the -b option"      echo "The parameter follow -b is $OPTARG"      ;;    c)      echo "Found the -c option"      echo "The parameter follow -c is $OPTARG"      ;;    d)      echo "Found the -d option"      ;;     *)       echo "Unknow option: $ARGS"      ;;  esac  done  shift $[ $OPTIND -1 ]   param_index=1  for param in "$@"  do    echo "Parameter $param_index:$param"    param_index=$[ $param_index + 1 ]   done}#getopts 命令解析選項和參數#優點:可在參數中包含空格如:-c "earth moon"#      選項字母和參數值之間可以沒有空格如:-bdog#      可將未定義的選項綁定到?輸出#      Unknow option: ?nomal_opts_act -a -b dog -c earth -d -f param1 param2getopts_act -a -b dog -c "earth moon" -d -f param1 param2getopt_act -a -b dog -c earth -d -f param1 param2
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽州县| 临安市| 财经| 青田县| 英吉沙县| 收藏| 朔州市| 滨海县| 深圳市| 三原县| 康定县| 始兴县| 额济纳旗| 织金县| 鸡东县| 苏州市| 益阳市| 武邑县| 德江县| 长丰县| 九寨沟县| 南澳县| 榕江县| 祁门县| 井研县| 太保市| 建阳市| 广平县| 金平| 甘泉县| 曲水县| 格尔木市| 武山县| 崇仁县| 江西省| 石泉县| 福鼎市| 安远县| 怀仁县| 精河县| 德令哈市|