Bir 
parametre değerlerin saklandığı bir öğedir.
Bir 
isim, bir sayı ya da aşağıda listelenmiş özel
karakterlerden biri olabilir. Bir 
değişken bir 
isim ile
donatılmış bir parametredir. Bir değişkenin bir 
değeri
vardır, isteğe bağlı olarak öznitelikleri de olabilir. Öznitelikler,
declare
yerleşik komutu kullanılarak atanabilir.
  
Bir parametre bir değer atanarak belirtilir. Boş dizge geçerli bir değerdir.
Bir değişken belirtildikten sonra sadece
unset
yerleşik komutu ile kaldırılabilir.
  
Bir değişkenin belirtilmesi aşağıdaki sözdizimi ile yapılabilir:
  
  
Eğer 
değer verilmezse, değişkene değer olarak
boş dizge verilmiş kabul edilir. Tüm 
değerlere
yaklaşık (~), parametre ve değişken yorumlamaları ile komut,
aritmetik yorumlamaları ve ayrımlama (ayrıntılar aşağıda) uygulanır.
Bir değişken tamsayılardan oluşmuş özelliklere sahipse,
$((...)) yorumlaması kullanılmamış bile olsa
değer bir aritmetik ifade olarak değerlendirilir (bkz, 
Aritmetik Yorumlama). 
"$@" kullanımı dışında (aşağıda açıklanmıştır),
sözcük çözümlemesi uygulanmaz. Dosya ismi çözümlemesi uygulanmaz.
Atama deyimleri 
alias, 
declare,
typeset, 
export,
readonly ve 
local yerleşik
komutlarının argümanları olarak verilebilir.
    
Atama deyiminin bir kabuk değişkenine veya 
dizi indisine bir değer atadığı bağlamda 
+= işleci sona ya da değişkenin önceki değerine ekleme yapmakta kullanılabilir. 
+= işlecinin bir değişkene uygulandığı durumda değişkenin tamsayı özniteliği etkinse 
değer bir aritmetik ifade olarak değerlendirilir ve değişkenin o anki değerine eklenir. 
+= işlecinin bir 
dizi değişkenine birleşik atama kullanılarak uygulandığı durumda ise değişkenin değeri değiştirilmez (
= kullanılmış gibi) ve yeni değer dizinin en büyük indisinden bir büyük indiste başlayan diziye eklenir. Dizge değerli bir değişkene uygulandığında, 
değer yorumlandıktan sonra değişkenin değerinin ardına eklenir.