Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.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
String 在bash中解析字符串并在变量中设置它_String_Bash_Shell_For Loop - Fatal编程技术网

String 在bash中解析字符串并在变量中设置它

String 在bash中解析字符串并在变量中设置它,string,bash,shell,for-loop,String,Bash,Shell,For Loop,请在此问题上提供帮助: 我有一个字符串(在将来,长度字符串和字符串chagne中的元素一直存在),例如: ataat1, atata2|ololo1 ololo2|pishpish1 pishpish1 如何使用cycle I获得该值并将其用作变量:(ex) 循环I的第一步有两个变量s1=ataat1和s2=ataat2,下一步是s1=ololo1和s2=ololo2 请帮忙!!!同样,字符串中的元素一直在变化您可以使用: s='ataat1, atata2|ololo1 ololo2|pis

请在此问题上提供帮助:

我有一个字符串(在将来,长度字符串和字符串chagne中的元素一直存在),例如:

ataat1, atata2|ololo1 ololo2|pishpish1 pishpish1
如何使用cycle I获得该值并将其用作变量:(ex)

循环I的第一步有两个变量s1=ataat1和s2=ataat2,下一步是s1=ololo1和s2=ololo2

请帮忙!!!同样,字符串中的元素一直在变化

您可以使用:

s='ataat1, atata2|ololo1 ololo2|pishpish1 pishpish1'

while IFS='[, ]' read -r s1 s2; do
   echo "s1=[$s1] s2=[$s2]"
done < <(printf "%b\n" "${s//|/\\n}")
s1=[ataat1] s2=[atata2]
s1=[ololo1] s2=[ololo2]
s1=[pishpish1] s2=[pishpish1]
s='ataat1,atata2 | ololo1 | ololo2 | pishpish1 | pishpishpish1'
而IFS='[,]'读-r s1 s2;做
回显“s1=[$s1]s2=[$s2]”

完成<不,这不是一个noob问题。也许是
-d'|'
而不是sed/subshell?尽管这需要确保输入字符串中有一个尾随的
|