鱼壳-如何在path中设置一个变量路径


Fish Shell - How to set a variable path in PATH

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

我找到了一篇关于如何在bash中做到这一点的优秀文章,但我似乎不知道如何在fish中实现这一点?

文章是:如何重写PHP的路径来使用MAMP路径?

专:

# 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

我试图弄清楚这其中的各个部分,但是由于对命令行的理解有限,所以很难知道要"搜索"什么。

感谢您的帮助!

设置PATH将在fish教程中介绍。

通常您可以简单地修改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安全漏洞的来源),并且不是fish支持的东西。您应该将/Applications/MAMP/Library/bin/mysql安排在PATH中,这样子脚本就可以找到您的可执行文件。和前面一样:

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