Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要在Bash中拆分一个由冒号分隔的字符串并分配给变量_Bash_Shell - Fatal编程技术网

需要在Bash中拆分一个由冒号分隔的字符串并分配给变量

需要在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

我的字符串总是有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='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]