-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.
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.
sumber
env SOME_VAR=1 echo $SOME_VAR
Itu dari Dokumentasi
Gunakan perintah env.
Anda juga bisa mendeklarasikan variabel lokal di blok dan itu tidak akan melewati shell
sumber
tergantung pada definisi
be
fungsi, ini bisa gagalAgar itu berfungsi:
Silakan, lihat penjelasan opsi --no-scope-shadowing
sumber