需要在Bash中拆分一个由冒号分隔的字符串并分配给变量
我的字符串总是有4个“单词”需要在Bash中拆分一个由冒号分隔的字符串并分配给变量,bash,shell,Bash,Shell,我的字符串总是有4个“单词” Strings:With:Four:Words and spaces 需要在Bash中将其拆分为4个变量。 所以 如何做到这一点?在阅读之前使用IFS=:: s='Strings:With:Four:Words' IFS=: read -r var1 var2 var3 var4 <<< "$s" echo "[$var1] [$var2] [$var3 [$var4]" [Strings] [With] [Four [Words] s='St
Strings:With:Four:Words and spaces
需要在Bash中将其拆分为4个变量。
所以
如何做到这一点?在阅读
之前使用IFS=:
:
s='Strings:With:Four:Words'
IFS=: read -r var1 var2 var3 var4 <<< "$s"
echo "[$var1] [$var2] [$var3 [$var4]"
[Strings] [With] [Four [Words]
s='Strings:With:Four:Words'
IFS=:read-r var1 var2 var3 var4这应该会有帮助:顺便说一句,var4=Words and spaces
将运行命令和,其中spaces
作为其第一个参数,并且var4
在环境中设置为Words
。更准确的方法是编写var4='Words and spaces'
,以显示与您试图完成的任务等效的行为。我唯一的建议是,如果不明确需要解释反斜杠转义序列,请将-r
参数添加到read
。
s='Strings:With:Four:Words'
IFS=: read -r var1 var2 var3 var4 <<< "$s"
echo "[$var1] [$var2] [$var3 [$var4]"
[Strings] [With] [Four [Words]