我正在尝试创建一个bash脚本来更改终端窗口的标题,以便我可以识别它们正在做什么。我在这上花了几个小时,无法弄明白。我们的想法是能够执行setupTle NewTitle。谢谢。
这是我的回声:$ PATH。看起来像Users / klik / bin有两次。也许这就是问题?
~ klik echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/klik/bin:/Users/klik/bin
这是以纯文本格式在textedit中创建的脚本。
#!/bin/bash
# settitle: set the Mac Terminal title
# usage: to set the titlebar to 'PLAY', type: settitle PLAY
echo -e "\033]0;${1}\007\c"
这是我的bash_profile和bin文件。
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
export PATH=$PATH:$HOME/bin
alias desk='cd ~/Desktop/'
alias down='cd ~/Downloads/'
alias github='cd ~/github/'
~klik ls -l $ HOME / bin | pbcopy
总共8 -rwx - x - x @ 1 klik staff 147 Mar 9 21:39 settitle.sh答案 0 :(得分:0)
试试这个:
echo -e "\033]0;FreddyFrog\007\c"
您需要使用-e
打开转义字符的解释。您也可以使用printf
。
printf '\033]0;%s\007\015' "Hippo Croco Horror Pig"
答案 1 :(得分:-1)
上面的这个问题是文件以.txt扩展名保存。我不知道为什么这是因为ls命令显示.sh ext。无论如何,这是我用来创建这个脚本并执行它的过程。
Open Finder - >应用程序 - > Mac中的TextEdit。 选择左下角的“新建文档”。 从菜单中选择格式 - >制作纯文本 粘贴此代码:
#!/bin/sh
# settitle: set the Mac Terminal title
# usage: to set the titlebar to 'PLAY', type: settitle PLAY
echo "\033]0;${1}\007\c"
感谢Alvin Alexander的code。
仍然在TextEdit中选择菜单文件 - >保存 取消选中"如果未提供扩展程序,请使用" .txt" " 当我选择我的文件名时,我保存它没有扩展名,所以我只需输入命令settitle NewTitle,而不必每次都输入扩展名。 请注意文件保存到的文件夹。它默认为我的机器上的桌面。
Open Finder - >去 - >转到文件夹
输入User Bin文件夹的路径:mine是/ Users / klik / bin 您可以通过从主目录运行:ls -l来检查是否有User / bin文件夹。 如果您在此目录中没有bin文件夹,则可以通过转到$ HOME目录并执行:
来创建一个bin文件夹。mkdir bin
要了解您的主目录是什么,请参阅this
然后,您可以执行以下命令打开目录:
open bin
这将在Finder中打开该文件夹。 将您创建的脚本文件拖到此文件夹中。 通过从文件所在的文件夹中执行以下命令或通过在文件名中包含文件的路径来确保脚本是可执行的:
chmod +x <name of file>
通过执行以下命令确保脚本位于可执行文件$ PATH中:
echo $PATH
你会得到这样的东西:
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/<you>/bin
如果您没有看到脚本的路径,即/ Users /&#39; /#bin,则脚本文件不在您的可执行文件路径中,您需要将其放在.bash_profile中。执行ls -l以查看是否有.bash_profile文件。
ls -l
如果您没有,请确保您在$ HOME目录中,然后执行以下操作创建一个:
mkdir .bash_profile
在默认编辑器中打开.bash_profile文件:
open .bash_profile
或者使用nano打开(保存并关闭nano,请参阅此link):
nano .bash_profile
将以下行添加到.bash_profile,然后保存/关闭:
export PATH=$PATH:$HOME/bin
执行以下命令退出终端重置:
exit
打开终端,然后输入:
settitle <whateveryouwant>
我希望这能节省一些时间。感谢Mark Setchell的建设性帮助。