Kabuk komut dosyalarındaki değişkenler için adlandırma kuralları var mı?


113

Çoğu dilde değişkenler için adlandırma kuralları vardır, kabuk komut dosyalarında gördüğüm en yaygın stildir MY_VARIABLE=foo. Bu kongre mi, yoksa sadece global değişkenler için mi? Komut dosyasındaki yerel değişkenler ne durumda?


1
Herkesin izlemesi gereken tek bildiğim, tüm büyük harflerin kabuk için ayrılması gerektiği. Kazara önemli bir şey PATHveya benzeri bir HOMEşey veya kabuğun gelecekte saklayabileceği herhangi bir şeyi kazayla engellemekten kaçınmak için bunları kullanmayın .
jw013

3
Aslında, tüm büyük harf adları genellikle ortam değişkenleri için kullanılır. Bazı değişkenler (PATH gibi) kabuk tarafından yorumlanırken, diğerleri (DİL veya YAZICI gibi) başka programlar tarafından yorumlanabilir, ancak bunlar hakkında özel bir şey yoktur.
jlp

'ortam değişkenleri' gerçekten uygun bir isim, cevabımı da ekleyeceğim.
jippie

Yetkili olmasa da, bu Google kılavuzunun iyi önerileri var: google.github.io/styleguide/shell.xml . Sadece sabitler ve dışa aktarılan değişkenler için tüm büyük harflere yapışmayı, her şey için yılan çantasını önermektedir. Şahsen, hiç kimsenin tavsiye etmediği, çarpışmaların isimlendirilme olasılığını azaltan, küreseller için deve kılıfını seviyorum. Artı okudukları gibi seviyorum.
İkili Phile

Yanıtlar:


111

İşletim sistemi veya kabuk başlatma komut dosyaları vb. Tarafından oluşturulan çevre değişkenleri veya kabuk değişkenleri genellikle hepsi içindedir CAPITALS.

Kendi değişkenlerinizin bu değişkenlerle çakışmasını önlemek için kullanımı iyi bir uygulamadır lower case.


32
lower_casealt çizgi ayrılmış mı camelCase?
Garrett Hall

3
@ GarrettHall Bu tamamen size kalmış. Bir kere onunla bir çubuk seç. Tutarlılık, gerçek seçimden daha önemlidir.
jw013

2
zevk meselesi? Şahsen C tarzını seviyorum camelCaseçünkü daha kısa ve çirkin alt çizgi kullanmıyor. Tat, stil, ...
jippie

19
zevk meselesi? Ben şahsen alt çizgi ayrılmış, okunması daha kolay.
janos

4
Bütünlüğü sağlamak için, çevre değişkenleri geleneksel her büyük kabuk değişken adlarının tek kategori değildir - bu kural builtins için de geçerlidir (gibi PWD, PS4ya da BASH_SOURCE).
Charles Duffy

62

Evet, değişken isimleri de dahil olmak üzere bash için tam kod stili kuralları vardır. Örneğin, işte Google’ın Shell Stil Kılavuzu .

Değişken isimlerinin özel bir özeti olarak:

Değişken İsimleri : Küçük harf, sözcükleri ayırmak için alt çizgi ile. Ör:my_variable_name

Sabitler ve Ortam Değişken İsimleri : Dosyanın en üstünde belirtilen, alt çizgilerle ayrılmış tüm büyük harfler. Ör:MY_CONSTANT


1
Yukarıdaki bağlantı şimdi öldü, ama ben buna bağlı olduğuna inanıyorum: google.github.io/styleguide/shell.xml
Sam

1
@Sam, teşekkür ederim. Evet, öyle. Google'ın googlecode.com
lol'i

1
Do Eğer zaman Google ne söylerse? ;-)
tim.rohrer

1
Bu sözleşme yalnızca kendi açık kaynaklı projeleri için Google’lardır: çok iyi kurallar olsalar da, tüm projeler için geçerli olamazdı .
smonff

1

Kelimeleri ayırmanın altını çizmek, gitmenin en iyi yolu gibi görünmektedir.
Seçmekte özgür olduğumda snake_case'i camelCase yerine tercih etmek için birkaç nedenim var:

  1. Esnek: Büyük ve küçük harf kullanabilirsiniz (örneğin MY_CONSTANTve my_variable);
  2. Tutarlı: Rakamı daha okunaklı hale getirmek için rakamlar ayrılabilir (örn. 1_000_000_000) Ve bu özellik birçok programlama dilinde desteklenir;
  3. Genel: Ortak noktada, regex \wkelime karakterleri ve sayılar ( [a-zA-Z0-9_]) gibi alt çizgiler kullanır .
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.