Bashスクリプトでパラメータを繰り返す方法

Bashスクリプトでパラメータを繰り返す方法

不明な数のパラメータを使用してbashスクリプトを作成したいと思います。

これらの主張をどのように理解し、これについて何かをすることができますか?

間違った試みは次のとおりです。

#!/bin/bash
for i in $args; do 
    echo $i
done

ベストアンサー1

特別な構文があります:

for i do
  printf '%s\n' "$i"
done

より一般的には、現在のスクリプトまたは関数のパラメータリストは特殊変数を介して使用できます$@

for i in "$@"; do
  printf '%s\n' "$i"
done

これを二重引用符で囲む必要があります$@。それ以外の場合、パラメータはワイルドカード拡張とフィールド分割を受けます。"$@"それは魔法です。二重引用符にもかかわらず、パラメータと同じくらい多くのフィールドに展開されます。

print_arguments () {
  for i in "$@"; do printf '%s\n' "$i"; done
}
print_arguments 'hello world' '*' 'special  !\characters' '-n' # prints 4 lines
print_arguments ''                                             # prints one empty line
print_arguments                                                # prints nothing

おすすめ記事