Respostas:
begin; set -lx EDITOR vim; crontab -e; end
set -lx date '12/04/2012'
begin; set -lx date '12/04/2012'; ruby -e 'puts ENV["date"]'; end
env SOME_VAR=1 command
Não perceba por que isso não deve funcionar:
env EDITOR=vim crontab -e
isso ignora completamente o shell.
env SOME_VAR=1 echo $SOME_VAR
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 ignoraria o shell
begin
set -lx SOME_VAR 1
command
end
dependendo de uma definição de be
função, isso pode falhar
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Para que funcione:
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 ou --no-scope-shadowing permite que a função acesse as variáveis das funções de chamada. Normalmente, quaisquer variáveis dentro da função que tenham o mesmo nome que as variáveis da função de chamada são "sombreadas" e seu conteúdo é independente da função de chamada.