我想捕获mysqlsh脚本(加载数据)的输出:
logs=$(mysqlsh --user=$USER --password=$PASS --socket=/var/run/mysqld/mysqld.sock < /script.js)
echo $logsscript.js:
util.importTable('/my.csv', {schema: 'db', table: 'mytable', dialect: 'csv-unix',
fieldsTerminatedBy: ';', linesTerminatedBy: '\n', replaceDuplicates: true
showProgress: false, bytesPerChunk: '200M', threads: 3, columns: [...]});在控制台上我看到:
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输出?
发布于 2022-08-03 20:46:24
在上面的帮助下,实际上最后的一个2>&1解决了这个问题:
.../script.js 2>&1)
https://stackoverflow.com/questions/73227322
复制相似问题