Bash スクリプトで getopts を使用する

Fumbani Banda 2023年1月30日
  1. Bash getopts の引数を使用してオプションを解析する
  2. Bash の引数なしの解析オプション getopts
Bash スクリプトで getopts を使用する

このチュートリアルでは、引数付きのオプションと引数なしのオプションを解析することにより、bash スクリプトでの getopts の使用法を示します。

Bash getopts の引数を使用してオプションを解析する

文字 nc の両方の前に:があります。これは、オプション -n または -c が使用されるときはいつでも引数が提供されることを期待していることを意味します。変数 opt は、getopts によって解析された現在のオプションの値を保持します。

while getopts n:c: opt
do
    case "${opt}" in
          n) name=${OPTARG};;
          c) country=${OPTARG}
     esac
done
echo "I am $name";
echo  "And I live in $country";

スクリプトを実行すると、-n オプションは引数として John を提供し、-c オプションは引数として Britain を提供します。

bash flags.sh -n John  -c Britain

出力:

I am John
And I live in Britain

Bash の引数なしの解析オプション getopts

これは、-h オプションが渡されたときにスクリプト usage を出力する単純な bash スクリプトを使用し、-p オプションがフォルダーへの指定されたパスとして使用された場合にフォルダーのコンテンツを出力します。口論。

最初の:は、getopts がエラーを報告しないことを意味します。代わりに、エラーは自分で処理します。文字 p の前には:がありますが、文字 h にはありません。つまり、オプション -p が使用される場合は常に引数が必要ですが、-h オプションは引数なしで使用できます。

-h オプションが渡されると、usage 関数が呼び出されます。-p オプションは、path 変数に渡された引数を割り当てます。この引数は、引数として list 関数に渡されます。*は、-h または -p ではないオプションが渡されたときに実行されるアクションを指定します。

#!/bin/bash

function usage {
       printf "Usage:\n"
       printf " -h                               Display this help message.\n"
       printf " -p <folder path>                 List contents of specified folder.\n"
       exit 0
}

function list {
       ls -l $1
}

while getopts :p:h opt; do
    case ${opt} in
      h)
         usage
        ;;
      p) path=${OPTARG}
         list $path
         #echo $folder
       ;;
      *)
          printf "Invalid Option: $1.\n"
          usage
       ;;
     esac
done

-h オプションを指定してスクリプトを実行します。

 ./getopts.sh -h
Usage:
 -h                               Display this help message.
 -p <folder path>                 List contents of specified folder.

-p オプションを指定してスクリプトを実行します。

./getopts.sh -p /home/fumba/example
total 0
-rw-r--r-- 1 fumba fumba    0 Nov  1 21:43 file1.txt
-rw-r--r-- 1 fumba fumba    0 Nov  1 21:43 file2.txt
drwxr-xr-x 1 fumba fumba 4096 Nov  1 21:43 pictures

無効なオプション -k を使用してスクリプトを実行します。

./getopts.sh -k
Invalid Option: -k.
Usage:
 -h                               Display this help message.
 -p <folder path>                 List contents of specified folder.
著者: Fumbani Banda
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

関連記事 - Bash Script