在脚本中运行时,更改标题的功能不起作用

在脚本中运行时,更改标题的功能不起作用

我有一个简单的命令来设置术语标题:

# Allow the user to set the title.
function title {
   PROMPT_COMMAND="echo -ne \"\033]0;$1 ($PWD)\007\""
}
export -f title

我想从脚本访问它:

16:28 $ cat ./scripts/webserver.sh
#!/bin/bash
title 'webserver'
nodemon ./app/webserver.coffee 

我已经放入了title.bashrc然后.bash_profile获取.profile了所有这些文件。我可以title从命令行正常运行该函数。无论我做什么,运行脚本文件时 title 函数都不会运行。没有错误,只是标题没有变化。我做错了什么?

更多信息:我echo 'changing title'在标题函数中添加了一行。输出了回显,但标题没有改变。那么标题函数肯定有问题吗?

有关的:如何更改 Gnome-Terminal 标题?

答案1

如果您需要更改终端的标题,我建议您使用wmctrl也可以在脚本内使用的标题(事实上,您的解决方案失败了,因为运行脚本时不使用提示符)。因此,首先安装软件包wmctrl,例如使用 apt:

sudo apt-get install wmctrl

其优点bash是它有一个名为的变量WINDOWID,其中包含一个可以使用的窗口 ID(不是开玩笑!)wmctrl。在 Bash 或脚本中,尝试:

wmctrl -ir $WINDOWID -N "A cool title"
  • -i选项用于告知wmctrl窗口将使用其数字 ID 来指定(echo $WINDOWID检查这WINDOWID确实是一个数字,并wmctrl -l列出您的窗口管理器管理的所有窗口并进行比较...您可能必须从十进制转换为十六进制或可能使用printf '%#.8x\n' "$WINDOWID")。
  • -r选项用于告知wmctrl指定窗口将准备好执行下列操作,即将-N其标题更改为指定标题。

man wmctrl了解有关这个有趣的小工具的更多信息。

享受!

相关内容