我遇到问题而不了解根本原因是什么。
我有一个包含这三个字段的表:
______________________________________________
| cid | order_id | TxRefNum |
----------------------------------------------
我在我的bash脚本中进行一个简单的调用(实际上没有其他代码可以开始)
#!/bin/bash
mysql --login-path=main-data -e "SELECT
cid,
order_id,
TxRefNum
FROM database.orders_temp" |
while read this that other; do
echo "$this || $that || $other"
done
我希望看到以下内容:
__________________________________________________________
| 29 | F0VIc - CHATEAU ROOFIN | 5555555 |
----------------------------------------------------------
相反,我的脚本将字符串$that
拆分为两个不同的字符串。回声实际上是:
___________________________________________________
| 29 | F0VIc | - CHATEAU ROOFIN |
---------------------------------------------------
在while循环中设置变量时是否需要设置分隔符?我真的很难过!
答案 0 :(得分:1)
Getting output from the mysql
command formatted in an intelligent way is problematic。在你的情况下,bash将解释为分隔符。你需要以不同的方式分裂。我能够让这个工作。您还会在查询中注明
|
,以及在{ppe}的IFS
行
#!/bin/bash
IFS='|' # set the delimiter
mysql --login-path=main-data -e "SELECT
29 as cid, '|',
'F0VIc - CHATEAU ROOFIN' as order_id,
'|',
5555555 as TxRefNum
FROM dual" |
while read this that other; do
echo "$this || $that || $other"
done