Yanıtlar:
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
Bunun neden işe env EDITOR=vim crontab -e
yaramaması gerektiğini anlamayın :
Bu, kabuğu tamamen atlar.
env SOME_VAR=1 echo $SOME_VAR
SOME_VAR=1 command produces an error: Unknown command "SOME_VAR=1".
Env komutunu kullanın.
env SOME_VAR=1 command
Ayrıca yerel bir değişkeni bir blokta ilan edebilirsiniz ve bu durum kabuğunu atlamaz.
begin
set -lx SOME_VAR 1
command
end
be
işlev tanımına bağlı olarak bu başarısız olabilir
begin
set -lx RAILS_ENV staging
be rails r "p ENV['RAILS_ENV']"
end
Çalışması için:
function be --description 'Runs bundle exec' --no-scope-shadowing
bundle exec $argv
end
Lütfen - no-Scope-Shadowing seçeneğinin açıklamasına bakınız.
-S veya --no-Scope-shadowing, işlevin çağıran işlevlerin değişkenlerine erişmesini sağlar. Normalde, işlev içindeki, aynı işlev çağrısı işlevindeki değişkenlerle aynı adı taşıyan değişkenler "gölgelidir" ve içerikleri çağıran işlevden bağımsızdır.