bash - 在 bash 中将多行输出捕获为数组

标签 bash

<分区>

如果inner.sh

#...
echo first
echo second
echo third

outer.sh

var=`./inner.sh`
# only wants to use "first"...  

var 如何被空格分隔?

最佳答案

试试这个:

var=($(./inner.sh))

# And then test the array with:

echo ${var[0]}
echo ${var[1]}
echo ${var[2]}

输出:

first
second
third

解释:

  • 例如,您可以通过执行 var=(first second third) 在 bash 中创建一个数组。
  • $(./inner.sh) 运行 inner.sh 脚本,打印出 first, secondthird 在不同的行。因为我们没有在 $(...) 周围加上双引号,所以它们会集中在同一行上,但用空格分隔,所以你最终会得到它在上一个要点。

关于bash - 在 bash 中将多行输出捕获为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823706/

相关文章:

linux - 如何在 shell 脚本 bash 中从属性文件调用变量

bash - 如何将 bash 变量作为 awk 参数的值传递?

bash - 从文件中删除非显示字符

bash - bash中文件名的递增数字

macos - 在 BASH 中,如何对数组中的现有元素使用 plist 上的默认写入?

bash - awk 命令在 snakemake --use-singularity 中失败

bash - 如何通过 bash 中的另一个脚本找出名为 ("sourced"的脚本的名称?

linux - 为什么 find 在反引号内产生一个空的新行?

linux - 在 Crontab 中删除现有的作业/任务

python - 使用配对输入文件和多个输出文件编写 bash 或 python for 循环