私は bash スクリプトを持っており、スクリプトの呼び出し中に渡されたオプションに基づいて、そのコマンドの一部をスキップできるようにしたい (つまり、実行しない)。
達成したいことを説明するためにif
、基本的に同じことを達成するステートメントを含むスクリプトを作成しました。
if [ "$1" != "skipA" ]
then
echo "A"
fi
if [ "$1" != "skipB" ]
then
echo "B"
fi
if [ "$1" != "skipC" ]
then
echo "C"
fi
if [ "$1" != "skipD" ]
then
echo "D"
fi
スクリプトの呼び出し中に引数が渡されない場合、4 つのecho
ステートメントすべてが実行されます。これらの echo ステートメントのいずれかをスキップする場合はskipLETTER
、最初の引数として次を使用します。
./script.sh skipA
を除くすべての文字A
が印刷されます。機能しますが、多くの制限があります。たとえば、同じ引数 ( $1
) を使用して多くの部分をスキップすることはできません。オプションで同じことを達成したいので、次のように入力できます。
./script -skipA -skipD
その結果、文字のみB
を印刷しC
ます。
これを使用getopt
またはgetopts
達成できることはわかっていますが、説明したことを達成する簡単な使用例が見つかりません。