gpt4 book ai didi

python - 如何将程序输出的数字以空格分隔放入 Bash shell 脚本中的数组中?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:56 25 4
gpt4 key购买 nike

假设我的 Python 脚本输出以下一行数字:

python3 myscript -> 12 93 12 83

现在,我想将这行输出 12 93 12 83 分解成一个数组,这样我就可以使用这些(其中一些)作为参数来执行命令。

如果有更简单的实现方法,请告诉我。否则,如何将空格分隔的输出拆分为数组?

最佳答案

使用read,它可以进行拆分以创建数组:

IFS=" " read -r -a array < <(python3 myscript)

显然,上面假设使用空格分隔数字。

如果你想按照 CharlesDuffy 的建议拆分空格和换行符:

IFS=$' \n' read -r -d '' -a array < <(python3 myscript && printf '\0')

-d '' 导致将空字节视为记录分隔符。

然后,您可以使用 "${array[@]}" 扩展数组(双引号对于避免分词很重要)。 [@] 表示“所有数组元素”,类似于 "$@" 表示“所有位置参数”的方式。要提取单个元素,您可以使用 "${array[1]}""${array[2]}"(其中索引通常是变量)。

您可以轻松地遍历数组元素:

for element in "${array[@]}"
do
echo "$element"
done

如果你想要一个处理空数组的循环,许多 Bash 版本将无法使用上面的扩展;然后您可以使用以下语法:

for element in ${array[@]+"${array[@]}"}
do
echo "$element"
done

您可以使用 "${#array[@]}" 检索数组中的项目数。

关于python - 如何将程序输出的数字以空格分隔放入 Bash shell 脚本中的数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43561204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com