токенизация строки в проблеме bash - PullRequest
0 голосов
/ 18 августа 2011

    tokens='a,b'
    IFS=&#39;,&#39; read -ra a <<<$tokens
    for i in "${a[@]}"; do
       echo "$i |"
    done

выходы


    a b |

но


    IFS=&#39;,&#39; read -ra a <<<&#39;a,b&#39;
    for i in "${a[@]}"; do
       echo "$i |"
    done

правильно выводит

a |
b |

как мне заставить работать первый? Я в замешательстве.

1 Ответ

0 голосов
/ 18 августа 2011

Вам нужны двойные кавычки около $ token

 cat a

 tokens='a,b'
     IFS=',' read -ra a <<< "$tokens"
     for i in "${a[@]}"; do
        echo "$i |"
     done

 ./a
 a |
 b |
...