我有一个shell脚本文件,它启动一个ruby dev服务器并设置窗口的标题。出于某种原因,它不能在OS X中运行,但它在Ubuntu中运行。
这是我的脚本:
[10:24:48] [user@mac site_web]$ tail ./sdev.sh
#!/bin/bash
title "dev server port 3000"
RAILS_ENV=development rails s -p 3000 --debugger
从命令行运行良好,但在脚本中失败。
[10:18:17] [user@mac site_web]$ title "dev server"
title changed
[10:18:29] [user@mac site_web]$ ./sdev.sh
./sdev.sh: line 2: title: command not found
最后一行是问题所在。
我的标题函数(在我的〜/ .bash_profile中):
# function for setting terminal titles in OSX
function title {
printf "\033]0;%s\007" "$1"
echo "title changed"
}
我是否需要以不同方式执行此操作,因为它位于OSX上?
编辑:我尝试将标题函数添加到/Users/[me]/.bashrc,我仍然收到错误。
@slhck据我了解,这不存在于mac os x
—
jcollum
@slhck看起来像是不正确的; 将功能添加到.bashrc并且我仍然得到错误
—
jcollum
好吧,它默认情况下不存在,但在调用时由bash读取。请参阅joshstaiger.org/archives/2005/07/bash_profile_vs.html - 但在您的情况下,您应该
—
slhck
source ~/.bash_profile
(或~/.bashrc
)从您的脚本中获取。我相信这里有一些我不知道的东西,但是获取配置文件会使该功能可用。
@slhck我在你评论之前的几分钟尝试过
—
jcollum
if [ -f ~/.bashrc] etc..
,它没有改变任何东西
.bashrc
,而不是