Arc*_*ano 4 bash windows-terminal
我知道如何更改终端窗口标题。我想找出的是如何bash不zsh写出当前正在运行的进程,所以如果我说这样做
$ ls -lF
Run Code Online (Sandbox Code Playgroud)
我会得到这样的标题
/home/me/curerntFolder (ls -lF)
Run Code Online (Sandbox Code Playgroud)
获取最后执行的命令会为时已晚,因为该命令已经执行,因此它不会使用已执行的命令设置标题。
除了 @markp-fuso 的答案之外,我还介绍了如何使其与 Starship 一起使用。
\n function set_win_title() {\n local cmd=" ($@)"\n if [[ "$cmd" == " (starship_precmd)" || "$cmd" == " ()" ]]\n then\n cmd=""\n fi\n if [[ $PWD == $HOME ]]\n then\n if [[ $SSH_TTY ]]\n then\n echo -ne "\\033]0; \xef\xb8\x8f @ $HOSTNAME ~$cmd\\a" < /dev/null\n else\n echo -ne "\\033]0; ~$cmd\\a" < /dev/null\n fi\n else\n BASEPWD=$(basename "$PWD")\n if [[ $SSH_TTY ]]\n then\n echo -ne "\\033]0; \xef\xb8\x8f $BASEPWD @ $HOSTNAME $cmd\\a" < /dev/null\n else\n echo -ne "\\033]0; $BASEPWD $cmd\\a" < /dev/null\n fi\n fi\n\n }\n starship_precmd_user_func="set_win_title"\n eval "$(starship init bash)"\n trap "$(trap -p DEBUG | awk -F"\'" \'{print $2}\');set_win_title \\${BASH_COMMAND}" DEBUG\nRun Code Online (Sandbox Code Playgroud)\n请注意,这与Bash 指令中的自定义预提示和预执行命令不同,陷阱是在 后 starship init设置的。我已经在bug中指出了这一点。
| 归档时间: |
|
| 查看次数: |
6120 次 |
| 最近记录: |