В bash я могу сделать EDITOR=vim crontab -e
. Могу ли я получить аналогичный эффект в Fish shell?
Не понимаю, почему это не должно работать: env EDITOR=vim crontab -e
Это полностью обходит оболочку.
begin; set -lx EDITOR vim; crontab -e; end
Это из Документация
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
Используйте команду env.
env SOME_VAR=1 command
Вы также можете объявить локальную переменную в блоке, и это не будет обходить оболочку
begin
set -lx SOME_VAR 1
command
end
в зависимости от определения be
функция, это может не сработать
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Чтобы он работал:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
Пожалуйста, смотрите объяснение параметр --no-scope-shadowing
-S или --no-scope-shadowing позволяет функции получать доступ к переменным вызывающих функций. Обычно любые переменные внутри функции, которые имеют то же имя, что и переменные из вызывающей функции, «затенены», и их содержимое не зависит от вызывающей функции.