abc=okmemberikan nilai ke variabel abc. declare abcmendeklarasikan variabel yang dipanggil abc. Keduanya dapat digabungkan sebagai declare abc=ok.
Dalam bash, seperti shell, variabel string dan array lainnya tidak perlu dideklarasikan, jadi declaretidak perlu kecuali Anda ingin meneruskan opsi, misalnya declare -A abcuntuk membuat abcarray asosiatif atau declare -rmembuat variabel read-only. Namun, di dalam suatu fungsi, declaremembuat perbedaan: itu menyebabkan variabel menjadi lokal ke fungsi, yang berarti bahwa nilai variabel di luar fungsi (jika ada) dipertahankan. (Kecuali jika Anda menggunakan declare -g, yang membuat variabel tidak lokal; ini berguna ketika dikombinasikan dengan opsi lain, misalnya declare -gAuntuk membuat array asosiatif global dalam suatu fungsi.) Contoh:
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"
Keluaran:
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
Hal lain yang dapat Anda lakukan dengan declarebuiltin adalah
The declarebuiltin unik untuk bash. Ini sangat terinspirasi dan sangat dekat dengan typesetbuiltin ksh , dan bash menyediakan typesetsebagai sinonim declareuntuk kompatibilitas. (Saya tidak tahu mengapa bash tidak hanya menyebutnya typeset). Ada sinonim ketiga local,. Ada juga export, yang sama dengan declare -x, lagi untuk kompatibilitas (dengan setiap shell gaya Bourne).
declarejadikan NAMA lokal, seperti denganlocalperintah. The-gopsi menekan perilaku ini. Lihathelp declare.