首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bash脚本中捕获mysqlsh输出?

如何在bash脚本中捕获mysqlsh输出?
EN

Stack Overflow用户
提问于 2022-08-03 20:15:51
回答 1查看 76关注 0票数 0

我想捕获mysqlsh脚本(加载数据)的输出:

代码语言:javascript
复制
logs=$(mysqlsh --user=$USER --password=$PASS --socket=/var/run/mysqld/mysqld.sock < /script.js)
echo $logs

script.js:

代码语言:javascript
复制
util.importTable('/my.csv', {schema: 'db', table: 'mytable', dialect: 'csv-unix', 
   fieldsTerminatedBy: ';', linesTerminatedBy: '\n', replaceDuplicates: true
   showProgress: false, bytesPerChunk: '200M', threads: 3, columns: [...]});

在控制台上我看到:

代码语言:javascript
复制
WARNING: Using a password on the command line interface can be insecure.
Importing from file '/my.csv' to table `db`.`mytable` in MySQL Server at /var%2Frun%2Fmysqld%2Fmysqld.sock using 3 threads
[Worker000] db.mytable: Records: 351229  Deleted: 0  Skipped: 0  Warnings: 0
[Worker001] db.mytable: Records: 357374  Deleted: 0  Skipped: 0  Warnings: 0
[Worker002] db.mytable: Records: 352552  Deleted: 0  Skipped: 0  Warnings: 0
...
File '/my.csv' (21.11 GB) was imported in 5 min 22.7004 sec at 65.42 MB/s
Total rows affected in db.mytable: Records: 37129973  Deleted: 0  Skipped: 0  Warnings: 0

但是:echo $logs显示了一个空行

为什么这里没有捕获mysqlsh输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-03 20:46:24

在上面的帮助下,实际上最后的一个2>&1解决了这个问题:

.../script.js 2>&1)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73227322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档