Bash
非管道格式字元
在我的機器上,該命令
mysql -e "show databases"
生成以下輸出:$ mysql -e "show databases +--------------------+ | Database | +--------------------+ | information_schema | | database1 | | database2 | | mysql | | performance_schema | | sys | +--------------------+
但是,當我將它傳遞給任何命令(或重定向到文件)時,格式就會消失:
$ mysql -e "show databases" | cat Database information_schema database1 database2 mysql performance_schema sys
我認為格式可能來自stderr,但似乎並非如此:
$ mysql -e "show databases" 2>/dev/null +--------------------+ | Database | +--------------------+ | information_schema | | database1 | | database2 | | mysql | | performance_schema | | sys | +--------------------+
為什麼格式化字元不通過管道?我可以改變這種行為嗎?
MySQL 更改輸出
$$ format $$當管道從標準輸出更改為另一個應用程序時。 要保留此格式,請使用
--table
選項或使用--tabbed
or--vertical
。