【问题标题】:Mac Terminal /bin/settitle.sh: No such file or directoryMac Terminal /bin/settitle.sh:没有这样的文件或目录
【发布时间】:2016-06-24 04:36:24
【问题描述】:

我正在尝试创建一个 bash 脚本来更改终端窗口的标题,以便我可以识别它们在做什么。我花了几个小时在这上面,但无法弄清楚。这个想法是能够执行settitle 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/'

这是我的 ls -a 输出

当前目录

~ 点击 ls -l $HOME/bin |复制

共 8 个 -rwx--x--x@ 1 klik 员工 147 Mar 9 21:39 settitle.sh

【问题讨论】:

  • 你试过./settitle ??您的文件不在 /bin/ 中,而是在 '/Users/klik/bin` 中,因此您需要执行 '/Users/klik/bin/settitle` 以获得完整路径。
  • 我试过 ./settitle 但没用。我试图把它放在 /bin 并且它不会接受,这没关系,因为保留那个文件夹似乎是一个更好的主意。我按照其他说明制作了特定于我的用户的脚本,这就是它在 /Users/klik/bin/settitle 中的原因。
  • 请将文本作为文本发布,而不是作为图片发布。

标签: bash alias osx-yosemite .bash-profile


【解决方案1】:

试试这个:

echo -e "\033]0;FreddyFrog\007\c"

您需要使用-e 来打开转义字符的解释。你也可以使用printf

printf '\033]0;%s\007\015' "Hippo Croco Horror Pig"

【讨论】:

  • 进行了编辑。没用。这是命令并输出~ klik settitle TEST -bash: settitle: command not found
  • 你是如何运行它的?您是否使脚本可执行?如果没有,您需要在终端中输入chmod +x settitle
  • 见第二张图片下半部分。我知道该目录不存在,尽管它显然存在。知道该怎么做吗?
  • 您需要下定决心要做什么。该文件是名为settitle 还是名为settitle.sh?不管它叫什么,它都不在你的 HOME 目录中。恕我直言,最好的解决方案是在您的 HOME 目录中创建一个名为 bin 的目录,并将所有脚本放在那里。然后编辑您的.profile 以将$HOME 添加到您的PATH,即export PATH=$PATH:$HOME/bin。然后在 $HOME/bin 中运行 chmod +x * 使 $HOME/bin 中的所有脚本都可执行。
  • 我添加了我的 bin/bash 和主目录的图片。 settitle.sh 文件位于主目录的 bin 目录中(上面显示了 bin 文件夹中的 ls 。我将 .bash_profile 中的导出路径更改为 export PATH=$PATH:$HOME/bin ,但仍然没有乐趣。根据stackoverflow.com/questions/6751252/…,我相信 .profile 和 .bash_profile 用于此目的是相同的。现在仍在工作。脚本的路径是 /Users/klik/bin/settitle.sh
【解决方案2】:

上述问题是文件以 .txt 扩展名保存。我不知道为什么会出现这种情况,因为 ls 命令显示了一个 .sh 分机。无论如何,这是我用来创建和执行这个脚本的过程。

在 Mac 中打开 Finder -> 应用程序->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 中选择菜单 File -> Save 取消选中“如果没有提供扩展名,请使用“.txt”” 当我选择我的文件名时,我将它保存为没有扩展名,因此我只需键入命令 settitle NewTitle 而不必每次都键入扩展名。 请注意文件保存到的文件夹。它默认为我机器上的桌面。

打开 Finder -> 前往 -> 前往文件夹

输入您的用户 Bin 文件夹的路径:我的是 /Users/klik/bin 您可以通过在主目录中运行以下命令来检查是否有 User/bin 文件夹: ls -l。 如果您在此目录中没有 bin 文件夹,您可以通过转到 $HOME 目录并执行以下命令来创建一个:

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/''/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 的建设性帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2023-04-04
    • 2016-03-28
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多