gpt4 book ai didi

bash - 用空格解析var

转载 作者:行者123 更新时间:2023-12-03 23:58:33 25 4
gpt4 key购买 nike

我有一个变量

some_var="a23=some value&p44=another_value&uw=possibly_another one"

我想将它转换成几个子字符串,每个 = 一个(在 & 处中断)。所以我会得到

a23=some value
p44=another_value
uw=possibly_another one

如果我运行这段代码

for s in ${some_var//&/ };do echo $s;done

我明白了

a23=some 
value
p44=another_value
uw=possibly_another
one

(它在空白处中断)

如何运行循环以考虑空间?

最佳答案

read 使用 '&' 作为字段分隔符:

#!/bin/bash

some_var='a23=some value&p44=another_value&uw=possibly_another one'
IFS='&' read -r -a arr <<< "$some_var"
for s in "${arr[@]}"; do
printf '%s\n' "$s"
done

类似于你的技术也可以工作:

(IFS='&'; for s in $some_var; do printf '%s\n' "$s"; done)

注意它在一个子shell中运行,不要弄乱当前shell的IFS

您可以考虑阅读 this article IFS 的详细信息。

关于bash - 用空格解析var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66233130/

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