2011-11-09 17 views
6

Başka birinin kodunu inceliyorum ve bunun ne anlama geldiğinden emin değilim.'a sahip olduğu için VARIABLE+set değişkenli bir değişkendir, ya da bu değer değerlendirilir ve Google için çok zordur, çünkü $ {} içinde $ {} vardır;)

+0

Bu gösterim genellikle GNU Autoconf tarafından oluşturulan komut dosyalarını yapılandırmak için kullanılır. – anol

cevap

7

Bu biraz zaman aldı, ama ben Bunun ne yaptığını açıklayan bir link bulundu. $VARIABLE ayarlanmışsa ve aksi halde sıfır olarak "set" değerini değerlendirecek olan bir bash parametresi değiştirme şeklidir.

if [ -z "${VARIABLE+set}" ] ; then 
    echo "VARIABLE is not set" 
fi 

O ${VARIABLE+set} aynı kolaylıkla ${VARIABLE+anything} olabilir dikkat etmek de ilginçtir: Bu değişken aşağıdakileri yaparak ayarlanmış olup olmadığını kontrol etmenizi sağlar. + Setini kullanmanın tek nedeni, biraz daha kendini belgelemenin (bu soruyu sormamı engelleyecek kadar olmasa bile) olmasıdır.

+0

BTW, bu sadece bir bash özelliği değil, kabuk komut dilleri için POSIX standardının bir parçası: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 –

+0

Ve hemen hemen mevcut unix kabuklarının başlangıcı, yani Bourne Shell. – shellter