我有一个变量'roles‘,它包含以下数据:
构造函数、解构函数、Transformer
我正在遍历一个数组,我想在角色信息旁边追加一个用户名变量,但是我得到了“坏”的结果:
echo $roles
echo "$roles"
array=$(echo "$roles" | tr "," "\n")
for i in $array
do
echo $user_id - "$i"
done然而,我的输出是这样的:
Constructor,Deconstructor,Transformer
Constructor,Deconstructor,Transformer
bman - Constructor
Deconstructor
Transformer输出应如下所示:
bman - Constructor
bman - Deconstructor
bman - Transformer发布于 2015-06-18 02:02:03
array=$(echo "$roles" | tr "," "\n")不创建数组。
它创建了三行文本。
您想要的是array=($(echo "$roles" | tr "," "\n")),但是如果任何字段包含空格,它将不能正常工作。
比这更好的方法是使用:
IFS=, read -a array <<< "$roles"这对于包含空格的字段是安全的。
此外,$array也不是从数组中获取所有元素的方式。为此,您可以使用"${array[@]}"。
https://stackoverflow.com/questions/30898958
复制相似问题