ファイルから他の関数​​のみを呼び出すときにgetopts機能を使用する方法

ファイルから他の関数​​のみを呼び出すときにgetopts機能を使用する方法

私の関数のパラメータ名を指定したいと思います。

コマンドラインから呼び出された基本関数にのみGETOPTSを使用しているようです。

ファイルに複数の関数がある場合、別の関数を呼び出すときに同じタイプの機能(名前付きパラメータ)を取得する方法はありますか?

たとえば、次はうまくいかないようです。

$ cat getops_example.sh 
function usage {
  echo 'here'
}

function my_test {
while getopts ":s:p:" o; do
    case "${o}" in
        s)
            s=${OPTARG}
            ((s == 45 || s == 90)) || usage
            ;;
        p)
            p=${OPTARG}
            ;;
        *)
            usage
            ;;
    esac
done
}
my_test 11 20
echo "s was $s"
echo "p was $p"
$

$ ./getops_example.sh -s 10 -p 20
s was 
p was 

ベストアンサー1

プログラムにパラメータを渡しましたが、プログラム内でmy_testオプションフラグ-s-pそのオプションなしで関数を呼び出すため、プログラムを実行できませんでした。実際のニーズに合わせてご使用ください。

my_test -s 11 -p 20

または、外部からパラメータを渡して関数を呼び出します。

my_test "$@"

おすすめ記事