シェルは与えられたオプションです

シェルは与えられたオプションです

リスト(配列など)に複数のパラメータがあり、そのオプションがリストにあるかどうかを $@知りたいです。-v

Pythonでは、次のように簡単に行います。

verbose = "-v" in sys.argv

あまりにも多くのコードを使わずにシェルでこれを達成するにはどうすればよいですか?

答え1

シェルスクリプトから次を呼び出すことができます。getoptsループの関数。コード例があります。ダッシュボードマニュアル


非常に単純な場合を除いて、Pythonコードは正しくありません。-v他のオプションの引数であるか、オプションではなく引数の後にある場合でも、行のどこにでも引数を検出します。 Pythonでオプションを解析する正しい方法は、またはargparseを使用することですoptparse

答え2

それは次のとおりです。

for i in "$@"
do
  [ "$i" = -v ] && verbose=1
done

関連情報