1

でいくつかのスクリプトを用意してgetoptsください。次が含まれます。

while getopts "hlcpx:" opt; do
  case $opt in
    h)
      usage && exit 1
      ;;
    l)
      last=1
      current=""
      ;;
    c)
      current=1
      last=""
      ;;
    p)
      prints=1
      exports=""
      ;;
    x)
      exports=1
      prints=""
      ;;
    \?)
      usage && exit 1
      ;;
  esac
done

echo "Using: current=$current last=$last prints=$prints exports=$exports"

しかし-オプションを指定して実行すると-x、次の-cようになりました。

$ ./version.sh -x -l
Using: current= last= prints= exports=1

$ ./version.sh -x -c
Using: current= last= prints= exports=1

削除する:と、正しく動作します:

$ cat version.sh | grep whil
while getopts "hlcpx" opt; do

$ ./version.sh -x -c
Using: current=1 last= prints= exports=1

$ ./version.sh -x -l
Using: current= last=1 prints= exports=1

私が間違っていることは何ですか?ありがとう。

4

1 に答える 1