From: Recai Oktas (roktas@omu.edu.tr)
Date: Fri 06 Jan 2006 - 05:44:18 EET
* Nejat AYDIN [2006-01-06 04:48:12+0200]
> Mehmet Fatih AKBULUT wrote:
> >cook tskler. [iki $ eksigi yuzunden baya bi kastim dogrusu.]
>
> Sorunun kaynağı '$' eksiği değil, boşluk fazlasıydı (diğer mesajıma
> bakınız). $((...)) ifadesinin içindeki değişken isimlerinin önüne
> '$' koymanız gerekmez. Hatta dizinin indeksi de bir aritmetik ifade
[...]
Bash (veya diger bazilarinda ?) gerekmedigi dogru, ama bu tip ifadelerde
olasi tasinabilirlik problemlerine binaen bir miktar idiyomatik davranmak
daha uygun olur. O yuzden ben $'lari eklerim/ekledim (VIM'in sozdizimi
renklendirmesinde degiskenlerin isildamasi da bonusu oluyor :-).
Standartlar ne diyor veya demiyor, ilgili POSIX belgelerine bakmak lazim.
Asagidaki karsilastirma bash/dash icin, ash'de de muhtemelen ayni sonuclar
alinacaktir:
$ bash -c 'foo=1; bar=2; echo $((foo + bar))'
3
$ dash -c 'foo=1; bar=2; echo $((foo + bar))'
dash: arith: syntax error: "foo + bar"
$ dash -c 'foo=1; bar=2; echo $(($foo + $bar))'
3
-- roktas _______________________________________________ Linux-programlama mailing list Linux-programlama@liste.linux.org.tr http://liste.linux.org.tr/mailman/listinfo/linux-programlama