Risposte:
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
Non vedo perché questo non dovrebbe funzionare:
env EDITOR=vim crontab -e
questo ignora completamente la shell.
env SOME_VAR=1 echo $SOME_VAR
Questo è dalla documentazione
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
Usa il comando env.
env SOME_VAR=1 command
Puoi anche dichiarare una variabile locale in un blocco e questo non aggirerebbe la shell
begin
set -lx SOME_VAR 1
command
end
a seconda di una definizione di be
funzione, ciò può fallire
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Affinché funzioni:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
Per favore, vedi la spiegazione dell'opzione --no-scope-shadowing
-S o --no-scope-shadowing consente alla funzione di accedere alle variabili delle funzioni di chiamata. Normalmente, tutte le variabili all'interno della funzione che hanno lo stesso nome delle variabili della funzione chiamante sono "ombreggiate" e il loro contenuto è indipendente dalla funzione chiamante.