unix 我没有得到($(cat))和${arr[@]}之间的差异

iqjalb3h  于 2022-11-04  发布在  Unix
关注(0)|答案(1)|浏览(125)

当我在解决问题的时候,我发现($(cat))${arr[@]}有一些不同的东西。有人能解释一下区别是什么吗?


# !/bin/bash

read
arr=($(cat))

# read line

# arr=( $line )

arr=${arr[@]}
echo $((${arr// /^}))

另外,为什么注解部分也可以作为arr=($(cat))工作??或者也有区别?如果可能的话,再举一个例子,这样我的概念就清楚了。

ljo96ir5

ljo96ir51#

arr=($(cat))

填充数组,同时

arr=${arr[@]}

填充标量变量。

printf '%s %s\n'  a b c d > file
arr=($(cat file))
scalar=${arr[@]}

echo "${arr[1]}"  # b
echo "$scalar"    # a b c d

相关问题