【问题标题】:I am not getting difference between ($(cat)) and ${arr[@]}我没有得到 ($(cat)) 和 ${arr[@]} 之间的区别
【发布时间】:2022-01-22 22:48:36
【问题描述】:

我正在学习 bash 脚本。当我解决问题时,我发现($(cat))${arr[@]} 有所不同。谁能解释一下有什么区别?

#!/bin/bash

read
arr=($(cat))

# read line
# arr=( $line )

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

我正在处理的脚本。另外,为什么评论部分也可以用作arr=($(cat))??还是有区别??如果可能的话,再举一个例子,这样我的概念就会清楚。 请指导... 谢谢

【问题讨论】:

  • 这是几个问题合二为一的问题....为什么不尝试将其分开?这些可以得到更准确的回答。
  • 他们做了两件截然不同的事情。 $(cat) 扩展为标准输入的内容,减去第一行。 $line 只是扩展为第一行的内容。

标签: linux bash unix


【解决方案1】:
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

【讨论】:

  • 感谢您的简短理解。
猜你喜欢
  • 1970-01-01
  • 2015-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2020-10-14
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多