gpt4 book ai didi

MySQL 查询在 Bash 脚本中意外拆分

转载 作者:行者123 更新时间:2023-11-28 23:13:22 27 4
gpt4 key购买 nike

我遇到了问题,但不明白根本原因是什么。

我有一个包含这三个字段的表:

______________________________________________
| 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 分成两个不同的字符串。 echo 实际上是:

___________________________________________________
| 29 | F0VIc | - CHATEAU ROOFIN |
---------------------------------------------------

在 while 循环中设置变量时是否必须设置分隔符?我真的很难过!!

最佳答案

Getting output from the mysql command formatted in an intelligent way is problematic .在您的情况下,bash 将 解释为分隔符。您需要以不同的方式拆分。我能够让这个工作。您会注意到查询中的 | 以及顶部的 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

关于MySQL 查询在 Bash 脚本中意外拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com