首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将IFS设置为在读取here-string时忽略空格

将IFS设置为在读取here-string时忽略空格
EN

Stack Overflow用户
提问于 2018-08-09 01:18:24
回答 1查看 108关注 0票数 0

我在使用IFS来区分包和发行版时遇到了一些问题。现在我想添加CentOS的版本号,但问题是CentOS和数字6之间是用IFS分隔的。我的问题是,如何让IFS忽略空格并将其视为单个值?提前感谢:)

代码语言:javascript
复制
...

PACKET_MANAGERS=(
    "Debian|package:package:package|apt:dpkg-query|"
    "CentOS 6|package:package:package|yum:rpm|${CentOS_6_REPO}"
    ...
)
...
   for system in ${PACKET_MANAGERS[@]}
do
    IFS='|' read -r -a data <<< $system
    debug "Testing ${system} => ${data[0]}"

    if echo "${SYSTEM_NAME}" | grep "${data[0]}" &>/dev/null; then
        SYSTEM_NAME_DETECTED="${data[0]}"
    else
        continue
    fi

...

done
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 01:28:13

您需要引用${PACKET_MANAGERS[@]}

代码语言:javascript
复制
for system in "${PACKET_MANAGERS[@]}"

否则,将对展开数组表达式的结果进行单词拆分,因此数组中每个元素中的每个单词都将是for循环的单独迭代。使用[@]将使每个数组元素在结果中成为一个单独的单词。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51752266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档