انجمن‌های فارسی اوبونتو

جامعه کاربران => کافه اوبونتو => نویسنده: سید وحید رضا برهانی در 17 دی 1393، 11:02 ب‌ظ

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

اگر می‌خواید بیشتر بدونید، ++x ابتدا به x یک عدد اضافه می‌کنه و بعد مقدار قبلی x رو به عنوان خروجی می‌ده. اگر دوست دارید که مقدار جدید رو داشته باشید، از x++ استفاده کنید:
x=3
echo $((++x))
echo $((++x))
عنوان: پاسخ : یک باگ کوچیک و بی آزار:) توی بش (4.3.27(1)-release)
ارسال شده توسط: آرمان اسماعیلی در 17 دی 1393، 11:38 ب‌ظ
اینقد پلاس پلاسش کردید تا آخرش هنگ کرد :/
عنوان: پاسخ : یک باگ کوچیک و بی آزار:) توی بش (4.3.27(1)-release)
ارسال شده توسط: سید وحید رضا برهانی در 18 دی 1393، 07:23 ق‌ظ
این باگ نیست، دقیقا درستش همینطوره :)

اگر می‌خواید بیشتر بدونید، ++x ابتدا به x یک عدد اضافه می‌کنه و بعد مقدار قبلی x رو به عنوان خروجی می‌ده. اگر دوست دارید که مقدار جدید رو داشته باشید، از x++ استفاده کنید:
x=3
echo $((++x))
echo $((++x))
عجیب . من همیشه فکر می کردم x++ با ++x فقط توی محاسبه عبارت ها تفاوت دارند.
ولی آره حرفتون درسته الان با
echo $x
دیدم همینطوریه که می گید
عنوان: پاسخ : یک باگ کوچیک و بی آزار:) توی بش (4.3.27(1)-release)
ارسال شده توسط: nixoeen در 19 دی 1393، 03:48 ق‌ظ
توی محاسبه متفاوت نیستند و تنها تفاوتش همین بود که گفتم. توی زبان ++C/C هم همینطوره.