GBase 8a
适配迁移
文章
GBase 8a命令行客户端由于stdbuf缓冲导致输出信息顺序错误
GBase社区管理员发表于2020-10-15 11:28:4650次浏览0个评论
GBase 8a提供了命令行客户端gccli 用来执行sql语句,也支持批量执行。如果将输出结果转到文件,会出现输出信息顺序错误问题。解决方案是关闭stdbuf的缓冲区。
不关闭的输出错误样例
可以看到输出的end字符串跑到前面了。
[gbase@rh6-1 ~]$ gccli -e"system echo 'start';select now();system echo 'end';" > 2.log [gbase@rh6-1 ~]$ cat 2.log
start
end
now()
2020-10-15 11:24:18
[gbase@rh6-1 ~]$
关闭的输出样例
输出正常。其中的参数是-o 小写的字母o. 后面的数字是0。 L是按行输出。
或者增加 -n 参数 (--unbuffered) 也可以实现相同效果
[gbase@rh6-1 ~]$ stdbuf -o0 -oL gccli -e"system echo 'start';select now();system echo 'end';" > 1.log
[gbase@rh6-1 ~]$ cat 1.log
start
now()
2020-10-15 11:24:00
end
[gbase@rh6-1 ~]$
[gbase@rh6-1 ~]$ gccli -n -e"system echo 'start';select now();system echo 'end';" > 2.log
[gbase@rh6-1 ~]$ cat 2.log
start
now()
2020-10-15 11:44:29
end
[gbase@rh6-1 ~]$
评论已关闭
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526