奇忠诚 发表于 2018-8-28 09:56:06

linux shell getopt接受脚本参数命令分析

  时至今日、我才知道一个比较新鲜的东西
  叫做getopt() 这是一个linux的内置的命令行参数接受的东西
  还有就是他的兄弟getopt_long()
  曾经天真的我一直以为要手写接收参数的,好悲哀
  贴一个例子
root@lp:~/pwb/tmp# cat tmp.sh  
#!/bin/sh
  
./etc/plus.lib
  
while getopts ab:c:: ARGS
  
do
  
    case $ARGS in
  
    a)
  
      echo "a";;
  
    b)
  
      b=$OPTARG
  
      echo $b;;
  
    c)
  
      c=$OPTARG
  
      echo $c    ;;
  
    *)
  
      exit 1
  
    esac
  
done
  
root@lp:~/pwb/tmp# sh tmp.sh -ab asdasf -casfasgdgjfg
  
a
  
asdasf
  
asfasgdgjfg
  如果一个单个字符后有一个:那么就说明它这个选项后面需要接一个参数
  而且这个参数事需要用一个空格隔开
  如果有两个冒号的话,就是选项和参数之间不需要间隔、必须紧紧贴一块
  如果没有冒号的话、那就不需要参数、就是这样
  很简单把
  如果需要长选项的话就自己搞了
  我目前还不会、等我会了一定把这个补上
  刚才看了一个博客
  有人是这样弄得
while [ -n "$1" ]  
do
  
    case $1 in
  
    -i|--ip)    do some thing;shift 2;;
  
    ..
  
    ..
  
    esac
  
done
  我感觉这样也不错、也可以达到目的、今天就总结这么些把
  挺好的。


页: [1]
查看完整版本: linux shell getopt接受脚本参数命令分析