我在我的~/.bashrc
中定义了一些功能,我希望将其变成一个Homebrew包。目前,这些函数在我的命令行中充当自定义命令:
# .bashrc
function foo() {
# do something interesting
}
# at terminal
$ foo
# => does the interesting thing
我使用brew create
创建了一个自制公式。我目前的做法如下:
script
brew-script
中
brew-script
下载为tarball,brew-script.tar.gz
~/.bash_profile
末尾添加文字以在终端会话开始时包含script
修改brew公式中的.bash_profile
是不是很糟糕? (例如,当使用brew uninstall script
卸载时,brew应该以某种方式删除附加到.bash_profile
的文本...解析.bash_profile
看起来并不是很有趣。)
是否已经建立了在bash脚本中包含函数的约定,以便可以从命令行使用它们?
通常只是要求用户向.bash_profile
或.bashrc
添加一些文字?
应该可以使用brew干净地安装,然后运行foo
作为命令:
$ brew install script
$ foo
# => does the interesting thing
(假设brew配方已在本地安装。我会担心审核并将配方推送到自制软件中)
答案 0 :(得分:1)
参考https://github.com/Homebrew/homebrew/issues/50232和https://github.com/Homebrew/homebrew/issues/50231。
我有一个安全的脚本‡修改〜/ .bash_profile作为自制安装过程的一部分。 https://github.com/paul-hammant/homebrew-tap/blob/master/switchjdk.rb
据称是答案 1 :(得分:0)
不使用自制程序:
将您的bash脚本放在某个文件中,例如bashrc
或任何其他名称,然后输入以下行:
source "path/to/brew-script/script"
你的bash档案中的某个地方。
然后,您只需确保通过运行. ~/.bash_profile
或source ~/.bash_profile.
自制程序如何安装:
当您安装自制软件时,它会在您的bash_profile中添加一行,修改您的$ PATH变量以包含自制安装仓库的路径,这样每当brew安装一些东西,它就可以通过您的PATH找到。 如果您使用brew创建,则必须将您的脚本上传到Internet上的某个位置,因为brew install的参数是一个URL。即如果我在my_bash_function.tar.gz创建我的脚本,那么我会做
brew create http://web.mit.edu/dianah13/www/my_bash_function.tar.gz
它还模拟拉取请求,将您的包裹包含在自制软件的主要仓库中。