リスト(配列など)に複数のパラメータがあり、そのオプションがリストにあるかどうかを $@
知りたいです。-v
Pythonでは、次のように簡単に行います。
verbose = "-v" in sys.argv
あまりにも多くのコードを使わずにシェルでこれを達成するにはどうすればよいですか?
答え1
シェルスクリプトから次を呼び出すことができます。getopts
ループの関数。コード例があります。ダッシュボードマニュアル。
非常に単純な場合を除いて、Pythonコードは正しくありません。-v
他のオプションの引数であるか、オプションではなく引数の後にある場合でも、行のどこにでも引数を検出します。 Pythonでオプションを解析する正しい方法は、またはargparse
を使用することですoptparse
。
答え2
それは次のとおりです。
for i in "$@"
do
[ "$i" = -v ] && verbose=1
done