mintty:如何在进程终止后保持我的输出可见?

mintty:如何在进程终止后保持我的输出可见?

我有一个桌面快捷方式,用于启动 cygwin bash 脚本,我希望 mintty 终端在脚本终止后保持打开状态,以便我可以查看其输出。为此,我使用了-h alwaysmintty 选项[1]。

窗口确实保持打开状态,但当我的脚本终止时,mintty 毫无帮助地清除了输出(!!!)。这似乎是一个糟糕的笑话。我是不是漏掉了什么?我已经验证了这种行为,即使使用只有 echo 的一行脚本也是如此。


笔记[1]-h在手册页中描述如下:

-h, --hold never|start|error|always

Determine whether to keep the terminal window open when the command has finished and no more processes are connected to the terminal. 

答案1

我进行了一些测试,-h alwaysmintty 选项按预期工作;屏幕没有被清除并且窗口保持打开状态。

这是我用于运行脚本的确切快捷方式“目标”:

C:\cygwin64\bin\mintty.exe -h always /usr/bin/bash -l ~/helloworld.bash

我正在使用 mintty 2.7.7 (x86_64-pc-cygwin)。

read希望升级 mintty 和/或使用如上所示的语法可以为您解决问题。如果没有,您可以通过添加如下命令在脚本本身内强制暂停:

echo 'Script end.  Press ENTER to close'
read

答案2

我正在运行我的脚本,bash --login因此在终止时它会隐式调用,/etc/bash.bash_logout其中包括一行运行/usr/bin/clear“增加隐私”)。


致谢:我找到了答案在此错误报告中其中包括以下有用的解释:

>  Hmm, the screen clearing is done by the latest /etc/bash.bash_logout:

# when leaving the console clear the screen to increase privacy   if
[ "$SHLVL" = 1 ]; then
    [ -x /usr/bin/clear ] && /usr/bin/clear   
fi

相关内容