Fish Shell - 如何在PATH

时间:2015-08-03 21:59:40

标签: php mysql shell mamp fish

我想更新我的鱼壳以使用MAMP的当前版本的PHP(目前正在使用的版本)。

我发现了一篇关于如何在bash中执行此操作的优秀文章,但我似乎无法解决如何在鱼类中实现这一目标?

文章是:How to override the path of PHP to use the MAMP path?

具体来说:

# Use MAMP version of PHP
PHP_VERSION=`ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

你是如何在鱼类中实现这一目标的? Fish希望将PHP_VERSION导出为字符串。

并且还使用这些命令别名来使用当前版本的MySQL

# Export MAMP MySQL executables as functions
# Makes them usable from within shell scripts (unlike an alias)
mysql() {
    /Applications/MAMP/Library/bin/mysql "$@"
}
mysqladmin() {
    /Applications/MAMP/Library/bin/mysqladmin "$@"
}
export -f mysql
export -f mysqladmin

我试图找出其中的各个部分,但对命令行的理解有限,这使得很难知道搜索'对于。

感谢任何帮助!

1 个答案:

答案 0 :(得分:5)

fish tutorial

中介绍了设置PATH

通常您可以简单地修改fish_user_paths,但由于您希望在每次启动时动态确定路径,因此直接设置PATH更简单。直截了当的翻译:

set PHP_VERSION (ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
set -x PATH /Applications/MAMP/bin/php/$PHP_VERSION/bin $PATH

你会把它放在~/.config/fish/fish.config

关于“导出功能”,这总是一个可疑的想法(它是那个可怕的bash安全漏洞的来源)并不是鱼支持的东西。您应该安排/Applications/MAMP/Library/bin/mysql在PATH中,以便子脚本可以找到您的可执行文件。就像以前一样:

set -x PATH /Applications/MAMP/Library/bin/ $PATH