bash - 如何使用从另一个命令通过管道传输的输出来初始化 bash 数组?

标签 bash shell

<分区>

有什么方法可以将列出一堆数字(每个数字在单独的一行中)的命令的输出通过管道传输并用这些数字初始化 bash 数组?

详细信息: 这列出了在以下日期范围内提交的 3 个变更列表编号。然后将输出通过管道传输到 cut 以进一步过滤它以仅获取更改列表编号。

p4 changes -m 3 -u edk -s submitted @2009/05/01,@now | cut -d ' ' -f 2

例如:

422311
543210
444000

如何将这个列表存储在 bash 数组中?

最佳答案

您可以在 ticks 下执行命令并设置数组,

ARRAY=(`command`)

或者,您可以将命令的输出保存到一个文件中,并类似地对其进行 cat,

command > file.txt
ARRAY=(`cat file.txt`)

或者,只是下面评论中建议的以下形式之一,

ARRAY=(`< file.txt`)
ARRAY=($(<file.txt))

关于bash - 如何使用从另一个命令通过管道传输的输出来初始化 bash 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971162/

相关文章:

linux - 在使用 xargs 和 fswatch 的命令之后运行命令

linux - 如何剪切文件中包含三位数字的单词 (100) - shell 脚本

java - 使用 JAVA/shellscripts 执行 sudo 命令

linux - 递归地 chmod for/

bash - 在shell脚本中查找shell可执行文件目录的平台独立方式是什么?

linux - 'cat foo.txt | my_cmd' 和 'my_cmd < foo.txt' 完成同样的事情吗?

linux - 如何在 bash 中评论参数列表

linux - Bash 脚本第 106 行 : syntax error: unexpected end of file

PHP脚本无法停止Linux中从shell脚本运行的程序

bash - Docker exec linux 终端创建别名