【发布时间】:2012-09-10 20:18:50
【问题描述】:
我正在解析来自 mysql 命令的查询结果(带有 --table 参数)
local records=`echo "${query}" | $MYSQL -u $MyUSER -h $MyHOST -p$MyPASS --table`
查询运行成功,我收到了良好的数据。
然后我遍历这个数据:
for data in $records ;
do
test+=$data
done
代码更广泛,但基本上就是这样。 不过,Bash 将每个空格都视为分隔符,这对文本字段来说是个问题。
所以我只是将它们连接起来。但是当我输入 bash 这些数据时:
*URL*
host:
test.url.com
pass:
anothertest
http://www.test.com
它将它连接到类似的东西:
pass:test.url.com.com
好像它不是连接,而是覆盖。 这可能是一些回车问题吗?
【问题讨论】:
-
听起来您可能会以某种方式在字符串中嵌入回车符,但我不知道您发布的内容来自何处。尝试使用例如打印各种字符串
printf "test=%q\n" "$test"-- bash 的 %q 格式将打印带引号的格式字符串,这使得识别回车等内容变得更加容易。尝试每次循环打印"$data",然后在最后打印"$test",看看它们的样子。 -
我遇到了同样的问题,对我来说是windows的回车。改成Linux结尾后,就成功了。
标签: bash