begin; set -lx EDITOR vim; crontab -e; end
No bash, posso fazer EDITOR=vim crontab -e
. Posso obter efeito semelhante no shell de peixe?
Não veja porque isso não deve funcionar:
env EDITOR=vim crontab -e
Isso ignora completamente o shell.
Isso é da Documentação
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
Use o comando env.
env SOME_VAR=1 command
Você também pode declarar uma variável local em um bloco e isso não iria ignorar o shell
begin
set -lx SOME_VAR 1
command
end
dependendo de uma definição da função be
, isso pode falhar
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Para funcionar:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
Por favor, veja a explicação da opção - no-scope-shadowing
-S or --no-scope-shadowing allows the function to access the variables of calling functions. Normally, any variables inside the function that have the same name as variables from the calling function are "shadowed", and their contents is independent of the calling function.