abc=ok
değişkene bir değer atar abc
. declare abc
denilen bir değişkeni bildirir abc
. İki olarak birleştirilebilir declare abc=ok
.
Bash'da, diğer mermilerde olduğu gibi, dize ve dizi değişkenlerinin bildirilmesi gerekmez; bu nedenle declare
, örneğin bir ilişkisel dizi yapmak veya salt okunur bir değişken declare -A abc
yapmak abc
için seçenekleri geçmek istemediğiniz sürece gerekli değildir declare -r
. Bununla birlikte, bir fonksiyonun içinde declare
fark yaratır: değişkenin fonksiyonda lokal olmasına neden olur, yani fonksiyonun dışındaki değişkenin değeri (varsa) korunur. (Siz declare -g
değişkeni yerel olmayan kılan kullanmıyorsanız ; örneğin declare -gA
, bir işlevde genel bir ilişkisel dizi oluşturmak için diğer seçeneklerle birleştirildiğinde kullanışlıdır .) Örnek:
f () {
declare a
a='a in f'
b='b in f'
echo "From f: a is $a"
echo "From f: b is $b"
}
a='Initial a'
b='Initial b'
f
echo "After f: a is $a"
echo "After f: b is $b"
Çıktı:
From f: a is a in f
From f: b is b in f
After f: a is Initial a
After f: b is b in f
declare
Yerleşik ile yapabileceğiniz başka bir şey
declare
Builtin Bash özgüdür. Güçlü bir şekilde ilham almış ve ksh'ın typeset
yerleşik yapısına çok yakın ve bash uyumluluğun typeset
eş anlamlısını declare
sağlıyor. (Bash'in neden sadece aramadığını bilmiyorum typeset
). Üçüncü bir eş anlamlı var local
. Ayrıca export
, declare -x
uyumluluk için tekrar aynıdır (her Bourne tarzı kabuklu).
declare
, NAME'lerilocal
komutta olduğu gibi yerel yapar .-g
Seçeneği bu davranışı bastırır. Bakınhelp declare
.