لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در نوشتن کد 4 عمل اصلی
2011-01-02, 07:40 PM,
ارسال : #1
مشکل در نوشتن کد 4 عمل اصلی
با سلام خدمت دوستان.
من 4 عمل جمع و تفریق و ضرب و تقسیم رو نوشتم اما وقتی ضرب رو می خوام تست کنم جواب نمیده. توی اجرا عمل ضرب رو توی تک کوتیشن میذارم اما فرقی نمیکنه. برای اجرای جمع : ./calc 2 + 3 جواب میده اما ضرب ./calc 3 ‘*’ 5 اینو جواب نمیده.
این کد رو اشتباه نوشتم.؟یا؟

[[code
#!/bin/bash
If [ $# != 3 ]
Then
Echo missing data
Exit
Fi

echo $1
echo $2
echo $3

#plus operation
If [ $2 = + ]
Then
Expr $1 + $2
Exit
Fi

#minus operation

If [ $2 = - ]
Then
Expr $1 - $2
Exit
Fi

#multiply operation

If [ $2 = * ]
Then
Expr $1 ‘*’ $2
Exit
Fi

#division operation

If [ $2 = / ]
Then
Expr $1 / $2
Exit
Fi
[code\]
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 08:02 PM,
ارسال : #2
پاسخ: مشکل در نوشتن کد 4 عمل اصلی
کد :
#!/bin/bash
if [ $# != 3 ]
then
echo missing data
exit
fi

echo $1
echo "$2"
echo $3

#plus operation
if [ "$2" = + ]
then
expr $1 + $3
exit
fi

#minus operation

if [ "$2" = - ]
then
expr $1 - $3
exit
fi

#multiply operation

if [ "$2" = "*" ]
then
expr $1 \* $3
exit
fi

#division operation

if [ "$2" = / ]
then
expr $1 / $3
exit
fi

همیشه پیشگام ... همیشه بهترین ... همیشه فدورا
http://persian-foss-legal.blogspot.com
http://www.tesla-sanat.com
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 08:06 PM,
ارسال : #3
پاسخ: مشکل در نوشتن کد 4 عمل اصلی
در هیچ جای برنامه نباید $2 را تنها بگذارید به این دلیل در صورت درخواست عمل ضرب عملگر * در تمام نقاط برنامه expand میشود به نام فایل های دایرکتوری از جمله خطی که echo در آن است و تمام if ها و ... . کل برنامه به هم میریزد...

در هنگام اجرای برنامه برای انجام عمل ضرب هم از * تنها به هیچ وجه استفاده نکنید...

الان برنامه اجرا می شود:
کد :
[fedoraman@mydesktop ~]$ ./aa 2 + 3
2
+
3
5
[fedoraman@mydesktop ~]$ ./aa 2 - 3
2
-
3
-1
[fedoraman@mydesktop ~]$ ./aa 2 '*' 3
2
*
3
6
[fedoraman@mydesktop ~]$ ./aa 2 \* 3
2
*
3
6
[fedoraman@mydesktop ~]$ ./aa 10 / 5
10
/
5
2
[fedoraman@mydesktop ~]$

همیشه پیشگام ... همیشه بهترین ... همیشه فدورا
http://persian-foss-legal.blogspot.com
http://www.tesla-sanat.com
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 08:35 PM,
ارسال : #4
پاسخ: مشکل در نوشتن کد 4 عمل اصلی
ممنون عملگر ضربم درست شد. اما نمیدونم چرا وقتی عمل ضرب رو انجام میده هرچی دایرکتوری قبلا ساختم هم اسامیشو نمایش میده؟؟!

*در روز تولد کویر دریا نمک، جنگل خار، کوه شن و خدا آسمانی پر ستاره را هدیه دادند*
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 08:38 PM,
ارسال : #5
پاسخ: مشکل در نوشتن کد 4 عمل اصلی
توی خطای اول $2 رو بدون دبل کئتیشن گذاشته بودم. بخاطر اون بود همونطور که گفتید. بینهایت تشکر

*در روز تولد کویر دریا نمک، جنگل خار، کوه شن و خدا آسمانی پر ستاره را هدیه دادند*
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 09:14 PM,
ارسال : #6
پاسخ: مشکل در نوشتن کد 4 عمل اصلی
خواهش میکنم. فقط آقا یک خطای مهم در برنامه شما دیدم که یادم رفت بگم: دقت کنید ' با ` فرق میکند. اولی SINGLE QUOTE نام دارم و دومی BACK QUOTE... دومی باعث میشود که هرچیز که داخلش است اجرا شود و خروجی آن جای خودش قرار بگیرد. مثلا:

کد :
MYDATE_CORRECTFORM=`date`
MYDATE_INCORRECTFORM='date'

این هم خیلی مهم است... موفق باشید

همیشه پیشگام ... همیشه بهترین ... همیشه فدورا
http://persian-foss-legal.blogspot.com
http://www.tesla-sanat.com
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2011-01-02, 09:23 PM,
ارسال : #7
Re: پاسخ: مشکل در نوشتن کد 4 عمل اصلی
bsdlinux نویسنده :خواهش میکنم. فقط آقا یک خطای مهم در برنامه شما دیدم که یادم رفت بگم: دقت کنید ' با ` فرق میکند. اولی SINGLE QUOTE نام دارم و دومی BACK QUOTE... دومی باعث میشود که هرچیز که داخلش است اجرا شود و خروجی آن جای خودش قرار بگیرد.

:lol: بله مرسی متوجه شدم

*در روز تولد کویر دریا نمک، جنگل خار، کوه شن و خدا آسمانی پر ستاره را هدیه دادند*
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان