我对鱼壳(和一般的shell脚本)相当新,但我想我会尝试做一些非常基本的事情:创建一个有条件地启动ruby
或irb
的函数。以下是完整的功能。它“有用”,如果我调用myruby --version
它会向我报告我拥有的ruby版本(而不是IRB的版本),当我在没有参数的情况下调用myruby
时,它会启动一个会话IRB。
但是,在使用IRB时,我无法看到我在终端中输入的内容。一切都在那里,我只是看不到它。键入退出将允许退出并返回焦点,我的文本再次出现。
我也尝试将行更改为exec irb
和command irb
但没有成功 - 他们都做同样的事情。尝试在后台启动IRB,然后用fg
强制转移焦点也会失败。
function myruby
if test -z $argv
irb
else
ruby $argv
end
end
似乎我必须遗漏一些非常基本的东西,但我不知道它是什么。 fish documentation在这方面不是很有帮助。他们有一个使用exec
启动emacs的示例,它确实有效。和在终端外面运行的任何东西一样。