Я довольно плохо знаком с рыбой оболочкой (и сценариями оболочки в целом), но я подумал, что попытаюсь сделать что-то довольно простое: создать функцию для условного запуска ruby
или irb
.Ниже приведена полная функция.Он «работает» в том, что если я вызываю myruby --version
, он сообщает мне версию ruby, которую я имею (вместо версии IRB), а когда я вызываю myruby
без аргументов, он запускает сеанс IRB.
Однако я не вижу, что я печатаю в терминале при использовании IRB.Все есть, я просто не вижу этого.Набрав exit, можно выйти и вернуть мне фокус, где мой текст снова появляется.
Я также попытался изменить строку на exec irb
и command irb
без успеха - все онисделать то же самое.Попытка запустить IRB в фоновом режиме, а затем принудительно сместить фокус с помощью fg
также не удалась.
function myruby
if test -z $argv
irb
else
ruby $argv
end
end
Похоже, я упускаю что-то довольно простое, но я не знаю, что это такое.Документация fish не очень полезна в этом отношении.У них есть пример использования exec
для запуска emacs, который работает.Как и все, что работает вне самого терминала.