Fish (shell) 'exec' не может запустить что-нибудь интерактивное? - PullRequest
0 голосов
/ 21 октября 2011

Я довольно плохо знаком с рыбой оболочкой (и сценариями оболочки в целом), но я подумал, что попытаюсь сделать что-то довольно простое: создать функцию для условного запуска 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, который работает.Как и все, что работает вне самого терминала.

...