提示符
通过提示符变量设置gsql 的提示符,这些变量是由字符和特殊的转义字符所组成。
表2-3 提示符变量
变量
描述
示例
PROMPT1
gsql 请求一个新命
令时使用的正常提
使用变量PROMPT1 切换提示符:
GBase 8c 工具参考手册
南大通用数据技术股份有限公司
9
示符。
PROMPT1 的默认值
为:%/%R%#
提示符变为[local]:
gbase=# \set PROMPT1 %M
[local:/home/gbase/gbase_db/tmp]
提示符变为name:
gbase=# \set PROMPT1 name
name
提示符变为=:
gbase=# \set PROMPT1 %R
=
PROMPT2
在一个命令输入期
待更多输入时(例
如,
查询没有用一个
分号结束或者引号
不完整)
显示的提示
符。
使用变量PROMPT2 显示提示符:
gbase=# \set PROMPT2 TEST
gbase=# select * from public.area TEST;
area_id |
area_name
---------+------------------------
1 | Europe
2 | Americas
4 | Middle East and Africa
3 | Asia
(4 rows)
PROMPT3
当执行COPY 命令,
并期望在终端输入
数据时
(例如,
COPY
FROM STDIN)
,
显
示提示符。
使用变量PROMPT3 显示COPY 提示符:
gbase=# \set PROMPT3 '>>>>'
gbase=# copy public.area from STDIN;
Enter data to be copied followed by a
newline.
End with a backslash and a period on a line
by itself.
>>>>
提示符变量的值是按实际字符显示的。但是,当设置提示符的命令中出现“%” 时,
变量的值根据“%”后的字符,替换为已定义的内容,已定义的提示符请参见表2-4。
表2-4 已定义的替换
符号
符号说明
%M
主机的全名(包含域名),若连接是通过Unix 域套接字进行的,则全名为
[local],若Unix 域套接字不是编译的缺省位置,就是[local:/dir/name]。
GBase 8c 工具参考手册
南大通用数据技术股份有限公司
10
%m
主机名删去第一个点后面的部分。
若通过Unix 域套接字连接,
则为[local]。
%>
主机正在侦听的端口号。
%n
数据库会话的用户名。
%/
当前数据库名称。
%~
类似%/,如果数据库是缺省数据库时输出的是波浪线~。
%#
如果会话用户是数据库系统管理员,使用#,否则用>。
%R
●
对于PROMPT1 通常是“=”,如果是单行模式则是“^”,如果会话与数
据库断开(如果\connect 失败可能发生)则是“!”。
●
对于PROMPT2 该序列被“ -”、
“ *”、
单引号、
双引号或“$”(取决于gsql
是否等待更多的输入:查询没有终止、正在一个/* ... */ 注释里、正
在引号或者美元符扩展里)代替。
%x
事务状态:
如果不在事务块里,则是一个空字符串。
如果在事务块里,则是“*”。
如果在一个失败的事务块里则是“!”。
如果无法判断事务状态时为“?”(比如没有连接)。
%digits
指定字节值的字符将被替换到该位置。
%:name
gsql 变量“name”的值。
%comma nd
command 的输出,类似于使用“^”替换。
%[ . . . %]
提示可以包含终端控制字符,这些字符可以改变颜色、背景、提示文本的
风格、终端窗口的标题。例如,
gbase=# \set PROMPT1 '%[%033[1;33;40m%]%n@%/%R
%[%033[0m%]%#'
这个句式的结果是在VT100 兼容的可显示彩色的终端上的一个宽体(1;)
黑底黄字(33;40)。
环境变量
表2-5 与gsql 相关的环境变量
GBase 8c 工具参考手册
南大通用数据技术股份有限公司
11
名称
描述
COLUMNS
如果\set columns 为0,则由此参数控制wrapped 格式的宽度。
这个宽度用于决定在自动扩展的模式下,是否要把宽输出模式
变成竖线的格式。
PAGER
如果查询结果无法在一页显示,
它们就会被重定向到这个命令。
可以用\pset 命令关闭分页器。典型的是用命令more 或less 来
实现逐页查看。缺省值是平台相关的。
说明
less 的文本显示,受系统环境变量LC_CTYPE 影响。
PSQL_EDITOR
\e 和\ef 命令使用环境变量指定的编辑器。
变量是按照列出的先
后顺序检查的。在Unix 系统上默认的编辑工具是vi。
EDITOR
VISUAL
PSQL_EDITOR_LINE
NUMBER_ARG
当\e 和\ef 带上一行数字参数使用时,
这个变量指定的命令行参
数用于向编辑器传递起始行数。像Emacs 或vi 这样的编辑器,
这只是个加号。如果选项和行号之间需要空白,在变量的值后
加一个空格。例如:
PSQL_EDITOR_LINENUMBER_ARG = '+'
PSQL_EDITOR_LINENUMBER_ARG='--line '
Unix 系统默认的是+。
PSQLRC
用户的.gsqlrc 文件的交互位置。
SHELL
使用\!命令跟shell 执行的命令是一样的效果。
TMPDIR
存储临时文件的目录。缺省是/tmp。