bashスクリプトは、引数がファイルであると想定していると仮定します。しかし、私たちはbash配列を持っており、配列の要素である行を含むファイルがあるかのように、何らかの方法でスクリプトを引数としてその配列を提供しようとしています。何をすべきか知りたいです。
myscrpt
簡単な例として、ファイルパラメータを必要とする単一のコマンドを含むスクリプトがあります。
cat $1
配列があります
arr=( 1 3 5 )
arr
引数が実際に内容が次のファイルであるかのようにスクリプトに引数として提供するにはどうすればよいですか?
1
3
5
効果的ですか myscript <(echo "${arr[@]}")
?
ありがとうございます。
ベストアンサー1
bash
シェルまたは配列をサポートする他のシェルを使用している場合は、"${var[@]}"
タイプ設定を使用できます。
a=(one two 'three four' five)
printf "%s\n" "${a[@]}"
printf
たとえば、必要な要素に1行に1つの要素をパイプします。
printf "%s\n" "${a[@]}" | myscript
配列拡張を二重引用符で引用することは本当に重要です。それ以外の場合は、@
文字が処理され、*
配列拡張が空白で区切られた単語として(誤って)処理されます。