Fish 使用eval'创建鱼壳函数;d从另一个exe文件输出
在使用fish 2.3.1的Ubuntu服务器16.10 x64上,myFish 使用eval'创建鱼壳函数;d从另一个exe文件输出,fish,Fish,在使用fish 2.3.1的Ubuntu服务器16.10 x64上,myuru_rtexe在标准输出上生成此函数 function uru set -x URU_INVOKER fish # uru_rt must already be on PATH uru_rt $argv if test -d "$URU_HOME" -a -f "$URU_HOME/uru_lackee.fish" source "$URU_HOME/uru_lackee.fish" el
uru_rt
exe在标准输出上生成此函数
function uru
set -x URU_INVOKER fish
# uru_rt must already be on PATH
uru_rt $argv
if test -d "$URU_HOME" -a -f "$URU_HOME/uru_lackee.fish"
source "$URU_HOME/uru_lackee.fish"
else if test -f "$HOME/.uru/uru_lackee.fish"
source "$HOME/.uru/uru_lackee.fish"
end
end
通过uru\u rt admin安装运行时
。uru
函数提供了基于golang的跨平台ruby版本管理器工具
在bash系统上,我通过在启动文件中放置eval“$(uru\u rt admin install)”
来注入uru
函数,以便uru
出现在shell中
在fish上,运行eval(uru\u rt admin install)
会因为失败而奖励我
$ eval (uru_rt admin install)
Missing end to balance this begin
- (line 1): begin; function uru set -x URU_INVOKER fish # uru_rt must already be on PATH uru_rt $argv if test -d "$URU_HOME" -a -f "$URU_HOME/uru_lackee.fish" source "$URU_HOME/uru_lackee.fish" else if test -f "$HOME/.uru/uru_lackee.fish" source "$HOME/.uru/uru_lackee.fish" end end
^
from sourcing file -
called on line 60 of file /usr/share/fish/functions/eval.fish
in function “eval”
called on standard input
source: Error while reading file “-”
我还尝试了设置u1(uru\u rt admin安装);使用相同的结果评估“$u1”
正如所料,当我执行uru\u rt admin安装>~/.config/fish/functions/uru.fish
时,uru
函数将持续可用。虽然这是一个选项,但我更喜欢在~/.config/fish/config.fish中使用eval
作为一个钓鱼的noob,我如何使用类似于bash的eval“$(uru\u rt admin install)”
的eval
将这个uru
函数动态注入到环境中?fish的eval
是一个内置的源代码的包装函数,看起来有些奇怪(甚至可能是一个bug)当你通过多行时,继续它的参数分裂
但是,在这种情况下,如果只使用源代码
,例如uru\u rt-admin-install | source
,它会更简单、更快、更有效
这假设虽然确实需要调用uru\u rt admin install
,但如果它所做的只是将代码打印到stdout,而不进行更改,那么您也可以简单地保存该函数,例如~/.config/fish/functions/uru.fish。您的uru\u rt admin安装|源代码
可以从~./config/fish/config.fish
作为~/.config/fish/functions/uru.fish