問題

シェルスクリプトファイルの複数行に配列を定義することは可能ですか?私はこのようなものを試した:

foo.sh

 #!/usr/bin/env bash

messages=(
    "Hello"
    "World"
)

echo $messages
 

ただし、出力には最初の行 "Hello"しかありませんが、2行目 "Word"はありません。

 $ sh foo.sh
Hello
 

私にとってもっと混乱しているのは、 foo.sh の内容をコピーして端末に直接貼り付けると、期待どおりに動作するということです。

 $ messages=(
    "Hello"
    "World"
)

echo $messages
Hello World
 

なぜ誰が知っていますか?

  ベストアンサー

配列全体を印刷したい場合は、次のようにする必要があります。

 echo ${messages[@]}
 

  同じタグがついた質問を見る

macosshell