折りたたみ:最初の文字のみ出力

折りたたみ:最初の文字のみ出力

文字列を使用してfold文字配列を作成しています。

INPUT=$1
arr=($(fold -w1 <<< "$INPUT"))
echo "$arr"
echo "$arr[@]"

コマンドを使用して./myProgram 1234スクリプトを実行します。

予想出力:1 2 3 4

私が得るもの:1そして1[@]

ベストアンサー1

出力を配列に正しく割り当てましたが、逆参照の助けが必要です。

エコ「$arr」

単純に配列の最初の要素(たとえば)を出力します1

エコ "$arr[@]"

中かっこが欠落している場合、bashに配列を添字として指定し、上記のように最初の$arr要素を逆参照してから印刷します[@]

代わりに、以下を使用してください(例:)。

printf '%s ' "${arr[@]}"

より配列に関する bash マニュアルセクションそれは言う:

参照配列のすべての要素を使用できます${name[subscript]}。シェルのファイル名拡張演算子との競合を防ぐには、中かっこが必要です。

おすすめ記事