2017-04-11 54 views
0

我正在通过PuTTY从Windows 10 PC访问Linux机器。 我已经通过设置如下$ PS1设置腻子(bash)的窗口标题为“$ PWD”:PuTTY:Linux窗口 - 如何在函数期间更新窗口标题?

PS1=\[\033]0;\w\007\]\[\033[1;33m\][\w]$\[\033[0m\] 

这种运作良好 - 每当我改变目录中的外壳,标题更新直线距离: enter image description here

不过,如果我更改目录的功能(如下)标题不更新,直到函数完成后:

function func() { 
    cd /share/testing_area/runtests ; 
    python Script.py; 
} 

enter image description here enter image description here

有没有一种方法可以在脚本期间更新标题?

在此先感谢:-)

答:脚本的最终版本:

function func() { 
    cd /share/testing_area/runtests 
    export PS1="\[\e[1;33m\][\w]$\[\e[0m\]" # REMOVE TITLE SPEC FROM $PS1 
    echo -ne "\e]2;$PWD\a" # SET TITLE TO CURRENT VALUES (USES $PWD as \w doesn't work for echo 
    python Script.py; 
    export PS1="\[\033]0;\w\007\]\[\033[1;33m\][\w]$\[\033[0m\]" # RE-ADD TITLE SPEC TO $PS1 
} 

回答

1

你正在改变标题使用PuTTY的自动标题从提示。不幸的是,一旦你的提示再次可见,提示通常会生效,这意味着在你的函数或脚本结束之前不会提示。

如果您想动态更改标题,我会建议this solution instead

+0

想想我已经对它进行了排序 - 我必须在$ PS1中“取消”标题栏(即导出PS1 =“\ [\ 033 [1; 33m \] [\ w] $ \ [\ 033 [0m \ ]“),然后使用命令'echo -ne”\ 033] 0;函数中的“TEST”\ 007“'。感谢那:-) –

+0

要把$ PWD的值而不是“TEST”,必须指定$ PWD - '\ w'(在$ PS1的设置中使用)不适用于echo。我还分别用\ e和\ a替换了\ 033和\ 007,它们执行相同的工作:'echo -ne“\ e] 2; $ PWD \ a”' –