例如chruby让用户定义其他ruby路径。以下内容:
RUBIES + =( /opt/jruby-1.7.0 “$ HOME / src目录/ Rubinius的” )
在鱼中有没有很好的方法来实现这一目标?
答案 0 :(得分:9)
所有鱼类变量都是数组。所以理论上这就像
一样简单set -x RUBIES $RUBIES /opt/jruby-1.7.0 "$HOME/src/rubinius"
不幸的是,当导出var时,fish不会自动将该数组转换为一串冒号分隔值。目前,鱼只为PATH和MANPATH做到了。
你可以这样做:
set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius"
但是假设RUBIES已经确定;否则你得到一个带有前导冒号的字符串,对于使用var的任何软件,它可能有也可能没有特殊含义。处理这个很简单:
if set -q RUBIES[1]
set -x RUBIES "$RUBIES:/opt/jruby-1.7.0:$HOME/src/rubinius"
else
set -x RUBIES "/opt/jruby-1.7.0:$HOME/src/rubinius"
end
如果您正在使用鱼2.3(即将发布)或使用git head制作的鱼,您可以使用新的"字符串"内置以分割并连接冒号上的字符串:
set rubies (string split ':' $RUBIES)
set rubies $rubies /opt/jruby-1.7.0 "$HOME/src/rubinius"
set -x RUBIES (string join ':' $rubies)