linux shell getoptスクリプトパラメータコマンド分析を受け入れる
今日になって、私はやっと1つの比較的に新鮮なものがgetopt()ということを知っています.これはlinuxの内蔵のコマンドラインパラメータが受け入れたものです.そして彼の兄弟getopt_long()かつて無邪気な私はずっと手書きでパラメータを受信すると思って、とても悲しいです1つの例を貼ります
1つの文字の後に1つある場合:このオプションの後にパラメータを接続する必要があります.このパラメータはスペースで区切る必要があります.2つのコロンがあれば、オプションとパラメータの間に間隔は必要ありません.ブロックをしっかり貼らなければなりません.コロンがなければ、パラメータは必要ありません.このようにとても简単でもし长いオプションが必要ならば自分でやりました私は今まだできません、私ができるのを待ってきっとこれを补ってさっき1つのブログを见ましたある人はこのようにしました
これでいいと思います.目的も達成できます.今日はこれでいいと思います.
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
1つの文字の後に1つある場合:このオプションの後にパラメータを接続する必要があります.このパラメータはスペースで区切る必要があります.2つのコロンがあれば、オプションとパラメータの間に間隔は必要ありません.ブロックをしっかり貼らなければなりません.コロンがなければ、パラメータは必要ありません.このようにとても简単でもし长いオプションが必要ならば自分でやりました私は今まだできません、私ができるのを待ってきっとこれを补ってさっき1つのブログを见ましたある人はこのようにしました
while [ -n "$1" ]
do
case $1 in
-i|--ip) do some thing;shift 2;;
..
..
esac
done
これでいいと思います.目的も達成できます.今日はこれでいいと思います.