この質問をするのは本当に恥ずかしいのですが、MySQL の出力 (例: ls -l) を STDOUT にリダイレクトし、同時に変数に代入する方法は本当にありますか? 私はこれを試しました:
san@pcjq:~$ exec 5>&1
san@pcjq:~$ SQL=$(mysql -uroot -p mysql -e "SELECT Host,User,Password FROM user;" | tee >(cat - >&5))
Enter password:
Host User Password
127.0.0.1 root *CD0B39440D9701958FDA10ED6B02E3507DC28EB
% slvUser *8E6F445A9F0E7AA18DA1D830CC61B5AAC9C606
localhost root *CD0B39440D9701958FDA10ED6B02E3507DC28EB
localhost san *8E6F4A10ED6B00E7AA18DA10EDD830CC61B5AAC9C606
localhost debian-sys-maint *1BF46B679FC8911CD06712EC782E446F01201CB7
これは、通常画面に表示される出力の正確な表現ではありません。一方で:
SQL=$(mysql -uroot -p mysql -e "SELECT Host,User FROM user;" >&2)
画面に正しい出力を出力しますが、変数に入ることに注意してください(明らかな理由により)。誰かが回避策を知っていますか?乾杯!!