我有一个 shell 脚本文件,用于启动 ruby 开发服务器并设置窗口标题。由于某种原因,它在 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 但仍然出现错误。
答案1
我没有 Mac 可以尝试这个,但是如果你在脚本中包含对函数源的引用,结果会怎样?
#!/bin/bash
. $HOME/.bash_profile
title "dev server port 3000"
RAILS_ENV=development rails s -p 3000 --debugger