Bash配列の長さは常に1を与えます。

Bash配列の長さは常に1を与えます。

以下のようにbashスクリプトを作成しました。

...file1.sh..

read samplearrrr;
echo "*******************"
echo ${#samplearrrr[@]}
echo "*******************"

ターミナルでこれを./file1.shとして実行し、入力は23 45 67 88として読み取られました。

出力の長さは常に1です。

インターネットを検索しようとしましたが、解決策が見つかりませんでした。

ベストアンサー1

コードは単語を単一の文字列として変数として読み込みます。自動的に配列に変換されません。

では、withを使用して値を配列として読み取ることがbashできます。-aread

read -r -p 'enter array values: ' -a vals
printf 'I got %d values\n' "${#vals[@]}" 

おすすめ記事