なぜ( ``)はリストを提供し、$()は1つの引数しか提供しないのですか?

なぜ( ``)はリストを提供し、$()は1つの引数しか提供しないのですか?

私は間違った言葉を使用した可能性がありますので、修正してください。私が持っているとしましょう:

lst=(`ls $1`)
echo $lst #this gives the first element of the list

しかし、私がこれをしようとすると:

lst=$(ls $1)
echo $lst #this gives me all the files under argument directory

ベストアンサー1

まず、$1(最初のパラメータ)はなぜここにありますか?第二に、変数の内容ではなくecho lstとしてのみ作成してください。lstあなたはそれをしたくなければなりませんecho $lst

括弧で囲まれた割り当ては、次の使用時に最初のbash(1)要素として評価されるインデックスなしで配列を作成します。

lst=(1 2 3)
echo $lst       # prints 1
echo ${lst[0]}  # prints 1
echo ${lst[1]}  # prints 2
echo ${lst[*]}  # prints 1 2 3

おすすめ記事