انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: سید وحید رضا برهانی در 17 دی 1393، 11:02 بظ
-
سلام
من چند وقته یک باگ توی سیستمم دیدم که فکر می کنم مربوط به bash باشه (باگ ریپورت ها رو بررسی نکردم) اصلا شایدم باگ نباشه به هر حال.
نحوه ی ایجادش
x=3
$((x++))
$((x++))
توضیحش
ما اول متغیر x رو برابر ۳ قرار می دیم بعد توی خط دوم پلاس پلاس می کنیم ولی توی خروجی اش پلاس پلاس نشده ولی اگر دوباره اجراش کنیم (خط سوم) پلاس پلاس می شه و دیگه تا آخر درست کار می کنه :)
-
این باگ نیست، دقیقا درستش همینطوره :)
اگر میخواید بیشتر بدونید، ++x ابتدا به x یک عدد اضافه میکنه و بعد مقدار قبلی x رو به عنوان خروجی میده. اگر دوست دارید که مقدار جدید رو داشته باشید، از x++ استفاده کنید:
x=3
echo $((++x))
echo $((++x))
-
اینقد پلاس پلاسش کردید تا آخرش هنگ کرد :/
-
این باگ نیست، دقیقا درستش همینطوره :)
اگر میخواید بیشتر بدونید، ++x ابتدا به x یک عدد اضافه میکنه و بعد مقدار قبلی x رو به عنوان خروجی میده. اگر دوست دارید که مقدار جدید رو داشته باشید، از x++ استفاده کنید:
x=3
echo $((++x))
echo $((++x))
عجیب . من همیشه فکر می کردم x++ با ++x فقط توی محاسبه عبارت ها تفاوت دارند.
ولی آره حرفتون درسته الان با
echo $x
دیدم همینطوریه که می گید
-
توی محاسبه متفاوت نیستند و تنها تفاوتش همین بود که گفتم. توی زبان ++C/C هم همینطوره.