Jawaban:
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
Jangan melihat mengapa ini tidak berhasil:
env EDITOR=vim crontab -e
Itu memotong shell sepenuhnya.
env SOME_VAR=1 echo $SOME_VAR
Itu dari Dokumentasi
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
Gunakan perintah env.
env SOME_VAR=1 command
Anda juga bisa mendeklarasikan variabel lokal di blok dan itu tidak akan melewati shell
begin
set -lx SOME_VAR 1
command
end
tergantung pada definisi be
fungsi, ini bisa gagal
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Agar itu berfungsi:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
Silakan, lihat penjelasan opsi --no-scope-shadowing
-S atau --no-scope-shadowing memungkinkan fungsi untuk mengakses variabel fungsi panggilan. Biasanya, setiap variabel di dalam fungsi yang memiliki nama yang sama dengan variabel dari fungsi panggilan "dibayangi", dan isinya tidak tergantung pada fungsi panggilan.