【发布时间】:2016-04-01 01:58:49
【问题描述】:
当我进行 bash 测试时:
(exec -l -a specialname /bin/bash -c 'echo $0' ) 2> error
run-builtins 失败,经过一番搜索,我发现它输出了
^[7^[[r^[[999;999H^[[6n
到标准错误,所以我将它重定向到一个文件错误。 如果我 cat 它,它会输出一个空行。 我使用 vim 打开它,发现:
^[7^[[r^[[999;999H^[[6n
为什么?
【问题讨论】:
-
这看起来像是设置终端窗口大小的转义序列。除此之外,我无法完全解析您要问的内容。不过,您似乎还有其他几个问题。你能重新措辞更清楚吗?
-
谢谢,我想问一下是谁输出转义序列,exec命令还是终端?
-
exec -l 是否会向标准错误输出一个空行?
-
这可能是提示,它进入stderr。我无法重现您的错误,但请尝试取消设置提示
-c 'PS1=;echo $0'。 -
是的,我发现子shell中的PS1是一个空行,但是当我取消提示-c 'PS1=;echo $0;echo ${PS1}'时,取消设置并没有工作,PS1也是空行。
标签: bash testing escaping character