【发布时间】:2018-05-16 16:31:05
【问题描述】:
我正在尝试使用数组从具有多个元素的变量中打印一个单词。这是一个脚本:
location=($(here mysql query to extract name of locations))
for i in "${location[@]}"; do
echo "$i"
done
但是这些位置名称包含空格:MUMBAI - BORIVALI、DELHI - LAJPATNAGAR 等等。所以它打印如下:在调试模式下输出:
+ for i in '"${LOCATION[@]}"'
+ echo DELHI
DELHI
+ for i in '"${LOCATION[@]}"'
+ echo -
-
+ for i in '"${LOCATION[@]}"'
+ echo LAJPATNAGAR
LAJPATNAGAR
+ for i in '"${LOCATION[@]}"'
+ echo MUMBAI
MUMBAI
+ for i in '"${LOCATION[@]}"'
+ echo -
-
+ for i in '"${LOCATION[@]}"'
+ echo BORIVLI
BORIVLI
我试过用双引号:
location=("$(here mysql query to extract name of locations)")
那么输出是
+ for i in '"${LOCATION[@]}"'
+ echo 'DELHI - LAJPATNAGAR
MUMBAI - BORIVLI'
一起。
我想要输出:
+ echo 'DELHI - LAJPATNAGAR'
DELHI - LAJPATNAGAR
+ echo 'MUMBAI - BORIVLI'
MUMBAI - BORIVLI
【问题讨论】:
-
您的编辑在字段之间显示逗号,对吗?在这种情况下,您可以将
IFS设置为逗号。请确保您准确地显示 mysql 生成的内容。 -
@cdarke 逗号仅在问题中显示不同的位置名称
-
您的新编辑在字段之间显示连字符,对吗?
-
我们为什么不消除猜测,然后您发布
$(here mysql query to extract name of locations)的前10行? -
是的,有连字符,mysql查询只包含表名和条件。您可以将
MUMBAI - BORIVLI和DELHI - LAJPATNAGAR视为列中的不同值以便更好地理解。