2017-04-11 80 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」' –