gpt4 book ai didi

bash - 在 bash 中拆分列表

转载 作者:行者123 更新时间:2023-12-04 00:03:40 27 4
gpt4 key购买 nike

我有这个脚本:

#!/bin/bash

list="a b c d"

for item in ${list[@]}; do
echo "${item}"
done

当我运行它时,这是输出:
a
b
c
d

这正是我想要的 。然而, shellcheck 讨厌这个并抛出一个错误:
for item in ${list[@]}; do
^-- SC2068: Double quote array expansions to avoid re-splitting elements.

但是,当我双引号变量时,脚本的输出更改为:
a b c d

这不是我想要的。

shellcheck 是否正确,我应该修改尝试从变量中提取项目的方式,但是如何?或者我应该告诉 shellcheck 忽略这个?

最佳答案

这不是数组:

list="a b c d"

您只是将 list 分配给长度为 7 的字符串。

使它成为一个真正的数组:
list=(a b c d)

然后使用 for item in "${list[@]}" ,您会得到正确的结果。

对于您更新的问题,您应该只使用 $list 而不是 ${list[@]} ,因为 list 不是数组。

关于bash - 在 bash 中拆分列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921672/

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