zsh config - vermek veya vermek değil?


23

Benim değişkenleri ayarlarken ~/.zshrcelimden ya kullanımdaexport

export PATH=/some/path

ya da değil

PATH=/some/path

Bunlar nasıl farklıdır ve hangisini kullanmalıyım?


Etkileşimli olmayan kabuklar tarafından da kullanılan çevresel değişkenler (örneğin, yazdığınız bir kabuk komut dosyası) girilmelidir .zshenv.
Francisco

~/.zshenvGiriş kabuklarından da mı kaynaklanıyor? Should PATHorada tanımlanabilir?
jordelver

1
PATHmuhtemelen içinde tanımlanması gereken bir değişkenin en iyi örneğidir ~/.zshenv, bu dosya herhangi bir zsh oturumundan kaynaklanır (bunu kapatmak için bir seçenek kullanmazsanız). Bkz man zshdosyalar kaynaklı olsun hangi bir inceleme için hangi sırayla.
Francisco

Tamam, teşekkürler @Francisco Adam sayfasını okuyacağım.
jordelver

Yanıtlar:


21

Varlıkları görmek için programların zsh'den çalışmasını istiyorsanız, dışa aktarın.
Yol için, muhtemelen dışa aktarmak istersiniz. Sistem ön ayarlı yolunu tamamen temizlemek istemiyorsanız , muhtemelen
yerine .export PATH=/some/pathexport PATH="$PATH:/some/path"


Bu harika teşekkürler. O zaman ihracatı genel bir kural olarak kullanacağım.
jordelver

21

Demure özel sorunuza zaten cevap verdi. Ancak bu bir zshsoru ve hakkında PATH. Yani burada bir başka nokta: Standart değişken yanında $PATH, orada da $pathbir dizi olan. Burada farkı görüyorsunuz (iki nokta üst üste ya da değil ...):

$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin

Her iki değişken de otomatik olarak senkronize tutulur. Öyleyse, bir dizi kullanmanın faydası nedir?

  • İkincisi typeset -U path, "her yinelenen değerin yalnızca ilk oluşumunu koru" (from man zshbuiltins) yoluyla bildirebilirsiniz . Bunun anlamı, art arda kaynak oluşturmuş olsanız bile ~/.zshrc(çünkü onu değiştirdiniz ya da her neyse) ve aynı değerlerle tekrar tekrar karışmasanız bile, yolunuzu temiz tutar .
  • path+=(/new/path)PATH'nize yeni bir dizin eklemek için kullanabilirsiniz . Bir öğeyi kaldırmak için bazı hileler kullanmanız gerekir, örneğin bkz. Https://stackoverflow.com/q/3435355/2037712 veya http://www.zsh.org/mla/users//2005/msg01132.html
  • PATH içindeki elemanlar üzerinden kolayca döngü yapabilirsiniz for i ($path) { print $i # or do something else }

Son olarak, burada benim yapılandırma bir alıntı:

typeset -U path
path=(/new/path1
      /new/path2
      $path)
export PATH

Teşekkürler, bu aslında bir takip sorusuydu. Bunun pathyerine yolumu yönetmeye bakacağım PATH.
jordelver

1
OT olduğumdan korktuğum için duyduğuma sevindim. Btw. unuttuğum başka bir avantaj: ile öğeleri üzerinde kolayca döngü yapabilirsiniz for i ($path) { print $i # or do something else }.
mpy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.