Tüm kabuk değişkenlerini nasıl listeleyebilirim?


19

Bu soru hakkında okuma: zsh içinde tüm ortam değişkenlerini nasıl listeleyebilirim? , Merak ettim, tüm kabuk değişkenlerini nasıl listeleyebilirim ?

Ayrıca, kabuk değişkenleri ve ortam değişkenleri arasındaki ayrım zsh dışındaki kabuklar için de geçerli mi?

Öncelikle Bash ve Zsh ile ilgileniyorum, ancak bunu diğer ana kabuklarda nasıl yapacağınızı bilmek harika olurdu.

Yanıtlar:


21

Tüm kabuk değişkenlerini listele

bash: kullanın set -o posix ; set. POSIX seçenekleri, işlev tanımları gibi çok fazla bilgi çıkışını önlemek için vardır. declare -payrıca çalışır.

zsh : kullan typeset

Kabuk değişkenleri ve ortam değişkenleri

Bir exec()alt değişken süreçleri için bir ortam değişkeni kullanılabilir (kopya olarak. Üst süreç değişkeni değiştirirse, alt ortam güncelleştirilmez). Ortam dışı bir değişken yalnızca geçerli çalışan kabuk ve fork()-ed alt kabukları için kullanılabilir . Bu ayrım tüm kabuklarda mevcuttur.

(yorumlar sayesinde tamamlandı)


declare -paynısını yapın
Costas

Sorunun burada da bir cevabı var: stackoverflow.com/questions/1305237/…
Uriel

1
set -o posixzsh içinde mevcut değil; setişlev tanımlarının çıktısını almaz.
vinc17

1
set -o posixçoğu kabukta bir sözdizimi hatasıdır.
mikeserv

3
Kabuk değişkenleri alt süreçlerde de mevcuttur. Fark, alt süreç yeni bir program yürüttüğünde gelir: ortam değişkenleri aktarılır exec, kabuk değişkenleri aktarılmaz .
Barmar

8

Birçok alternatif var:

printenv

Belirtilen ortamın değerlerini DEĞİŞTİRİN. DEĞİŞKEN belirtilmezse, tümü için ad ve değer çiftlerini yazdırın.

env

env - bir programı değiştirilmiş bir ortamda çalıştır

ihracat

Bir ortam değişkeni ayarlayın. Ortamdaki alt süreçlere geçirilecek her adı işaretleyin .....

-p Çıktıyı, girdi olarak yeniden kullanılabilecek bir biçimde görüntüler.

Herhangi bir ad belirtilmezse veya -p seçeneği belirtilirse, dışa aktarılan adların bir listesi görüntülenir.

Ayarlamak

kabuk değişkenlerini elde etmek için de yararlıdır.

Ekstra bilgiye ihtiyacınız varsa (tamsayı, dışa aktarılmış)

dizgi

ihracat bir avantajı vardır, çıktı hemen kabuk üzerine geri okunabilir.

Son olarak, var

compgen -v

Seçeneklere bağlı olarak olası tamamlamaları görüntüleyin.

tüm değişkenleri, kabuğu ve çevreyi, değerleri veya ekstra bilgileri olmadan gösterir. Değişken değerini bulmak için $ VARIABLE_NAME yankısını kullanmanız gerekecek . Ama en azından liste tamamlandı. Bu aittir bash değil zsh .


1
exportseten azından merminin yeniden girilmesi için teklif verme konusunda avantajı yoktur . Ve printenvve envkabuk değişkenleriyle ilgili değildir, ancak bunlar genellikle ortam değişkenleriyle çakışır.
mikeserv

3

İle zsh, örneğin değişkenlerin türünden typesetdaha fazla bilgi veren kullanabilirsiniz set. İstediğinize bağlı olarak çıktıyı grepveya ile filtreleyebilirsiniz sed. Ortam değişkenleri exportedçıktıdaki gibi işaretlenir .

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.