在bash问题中标记字符串

时间:2011-08-17 21:50:05

标签: shell tokenize


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

输出


    a b |

但是


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

正确输出

a |
b |

如何使第一个工作?我很困惑。

1 个答案:

答案 0 :(得分:0)

你需要围绕$ token

的双引号
 cat a

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

 ./a
 a |
 b |