問題があり、原因がわからない。私はBashスクリプトで予期せずMySQLクエリが分割される
#!/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
I(で起動する他のコードは、文字通りありません)私のbashスクリプトで簡単な呼び出しを行っています
______________________________________________
| cid | order_id | TxRefNum |
----------------------------------------------
:
は、私は、これらの3つのフィールドを持つテーブルを持っています
__________________________________________________________
| 29 | F0VIc - CHATEAU ROOFIN | 5555555 |
----------------------------------------------------------
代わりに私のスクリプトは文字列を分割しています二つの異なる文字列にが..エコーが実際にある:
___________________________________________________
| 29 | F0VIc | - CHATEAU ROOFIN |
---------------------------------------------------
は、私は私のwhileループで私の変数を設定するときの区切り文字を設定する必要がありますか?私は本当に困っている!!
あなたのデータは区切り文字が含まれる可能性がありますトペで
IFS
ラインで同様のクエリで|
に注意しましょう。すばやくテストするには、スペースをアンダースコアに置き換えるクエリに置換を追加する方法があります。また、アドバイスの素早い言葉:パラメータ/変数としてキーワード/予約語を使用しないでください: 'this'はパラメータの最も手の込んだ名前ではありません。 –LOL私は「これ」を意味する(何も意図していない) - それらは明らかに私の「本当の」変数名ではない;-) – Zak