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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: مشکل در تکه کد  (دفعات بازدید: 5165 بار)

0 کاربر و 4 مهمان درحال مشاهده موضوع.

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : مشکل در تکه کد
« پاسخ #15 : 09 فروردین 1396، 03:24 ق‌ظ »
با سلام
تو سوال اول الگوریتم دوستان خیلی خوب بود و واقعا راه حل بهتری به ذهن من نمی رسه (البته می شد از a+=$b هم استفاده کرد ولی واقعاً $a$b بهتره)
ولی اما سوال دوم ; من دقیق نفهمیدم منظورتون چیه اگه سوالتون اینه که کارکترهای ab رو چاپ کنه در اون صورت برنامه از کجا باید بفهمه که کارکتر a معادل 34 و کارکتر b معادل 32 هستش ؟ آيا این معادل بودن رو کاربر تعیین می کنه (با گرفتن ورودی از کاربر) و یا به صورت پیش فرض تو دستورات وجود داره ؟ اگه این مورد باشه لطفا یه مقدار بیشتر توضیح بدین
در هر صورت شمای کلی اسکریپت این شکلی میشه :
#!/bin/bash
read -p "Which number do you want to equal with a character: " a
read -p "Which number do you want to equal with b character: " b
read -p "Please enter a number that you want to be shown with characters: " number
A=$(echo $number | grep -o .. | sed -n '1p')
B=$(echo $number | grep -o .. | sed -n '2p')
if [ $A -eq $a ] ; then
printf 'a'
fi
if [ $B -eq $b ] ; then
printf 'b\n'
fi
ولی اگه منظورتون اینه که با زدن 3432 بنویسه a = 34 , b = 32 در اون صورت می تونین از دستورات زیر استفاده کنین :
#!/bin/bash
echo $1 | grep -o ..
و نحوه ی فراخوانی هم به این صورت هستش (مقادیر به صورت آرگومان به اسکریپت داده می شن) :
./script.sh 1234
و خروجی به این صورت هستش :
12
34
ولی اگه بخواین خروجی رو تو یه مقدار ذخیره اش کنین تا بعدا ازشون استفاده کنین (نه اینکه صرفا خروجی رو به نمایش بذارین) می تونین از این دستورات کمک بگیرین :
#!/bin/bash
a=$(echo $1 | grep -o .. | sed -n '1p')
b=$(echo $1 | grep -o .. | sed -n '2p')
echo a=$a b=$b
تو تمام دستورات بالا برای خلاصه شدن و جمع و جور شدن دستورات من مقدار c رو به عنوان آرگومان به اسکریپت می دادم ولی شما می تونین اون رو به این شکل در حین اجرای اسکریپت از کاربر بخواین :
#!/bin/bash
read -p "Please enter a number to separate it !: " number
a=$(echo $number | grep -o .. | sed -n '1p')
b=$(echo $number | grep -o .. | sed -n '2p')
echo a=$a b=$b
و اگه اول بخواین چک کنین ببینین که ورودی ۴ حرفی باشه بعد عمل تجزیه رو انجام بدین می تونین از دستورات زیر استفاده کنین :
#!/bin/bash
read -p "Please enter a number to separate it !: " number
if [ ${#number} -eq 4 ] ; then
    a=$(echo $number | grep -o .. | sed -n '1p')
    b=$(echo $number | grep -o .. | sed -n '2p')
    echo a=$a b=$b
else
    echo "Please enter 4-digit number !"
fi
در مورد سوال سومتون (در خواست از یک سایت) هم باید بگم متاسفانه خیلی گنگ و کلی پرسیدین و واقعا نمی شه نظری داد لطفا سوالتون رو دقیق تر بپرسین (البته تو یک تاپیک مجزا)
« آخرین ویرایش: 09 فروردین 1396، 05:16 ق‌ظ توسط ali76 »

آفلاین rahimi12

  • Full Member
  • *
  • ارسال: 228
  • جنسیت : دختر
پاسخ : مشکل در تکه کد
« پاسخ #16 : 09 فروردین 1396، 08:25 ق‌ظ »
با سلام
تو سوال اول الگوریتم دوستان خیلی خوب بود و واقعا راه حل بهتری به ذهن من نمی رسه (البته می شد از a+=$b هم استفاده کرد ولی واقعاً $a$b بهتره)
ولی اما سوال دوم ; من دقیق نفهمیدم منظورتون چیه اگه سوالتون اینه که کارکترهای ab رو چاپ کنه در اون صورت برنامه از کجا باید بفهمه که کارکتر a معادل 34 و کارکتر b معادل 32 هستش ؟ آيا این معادل بودن رو کاربر تعیین می کنه (با گرفتن ورودی از کاربر) و یا به صورت پیش فرض تو دستورات وجود داره ؟ اگه این مورد باشه لطفا یه مقدار بیشتر توضیح بدین
در هر صورت شمای کلی اسکریپت این شکلی میشه :
#!/bin/bash
read -p "Which number do you want to equal with a character: " a
read -p "Which number do you want to equal with b character: " b
read -p "Please enter a number that you want to be shown with characters: " number
A=$(echo $number | grep -o .. | sed -n '1p')
B=$(echo $number | grep -o .. | sed -n '2p')
if [ $A -eq $a ] ; then
printf 'a'
fi
if [ $B -eq $b ] ; then
printf 'b\n'
fi
ولی اگه منظورتون اینه که با زدن 3432 بنویسه a = 34 , b = 32 در اون صورت می تونین از دستورات زیر استفاده کنین :
#!/bin/bash
echo $1 | grep -o ..
و نحوه ی فراخوانی هم به این صورت هستش (مقادیر به صورت آرگومان به اسکریپت داده می شن) :
./script.sh 1234
و خروجی به این صورت هستش :
12
34
ولی اگه بخواین خروجی رو تو یه مقدار ذخیره اش کنین تا بعدا ازشون استفاده کنین (نه اینکه صرفا خروجی رو به نمایش بذارین) می تونین از این دستورات کمک بگیرین :
#!/bin/bash
a=$(echo $1 | grep -o .. | sed -n '1p')
b=$(echo $1 | grep -o .. | sed -n '2p')
echo a=$a b=$b
تو تمام دستورات بالا برای خلاصه شدن و جمع و جور شدن دستورات من مقدار c رو به عنوان آرگومان به اسکریپت می دادم ولی شما می تونین اون رو به این شکل در حین اجرای اسکریپت از کاربر بخواین :
#!/bin/bash
read -p "Please enter a number to separate it !: " number
a=$(echo $number | grep -o .. | sed -n '1p')
b=$(echo $number | grep -o .. | sed -n '2p')
echo a=$a b=$b
و اگه اول بخواین چک کنین ببینین که ورودی ۴ حرفی باشه بعد عمل تجزیه رو انجام بدین می تونین از دستورات زیر استفاده کنین :
#!/bin/bash
read -p "Please enter a number to separate it !: " number
if [ ${#number} -eq 4 ] ; then
    a=$(echo $number | grep -o .. | sed -n '1p')
    b=$(echo $number | grep -o .. | sed -n '2p')
    echo a=$a b=$b
else
    echo "Please enter 4-digit number !"
fi
در مورد سوال سومتون (در خواست از یک سایت) هم باید بگم متاسفانه خیلی گنگ و کلی پرسیدین و واقعا نمی شه نظری داد لطفا سوالتون رو دقیق تر بپرسین (البته تو یک تاپیک مجزا)
مرسی درباب سومی بگم ک منظور از درخواست اینه انگار مثل این میمونه که یک شخصی به یک سایت یا پروفایلی سر زده باشه. این کار با curl چجوری میشه

آفلاین سعيد

  • Sr. Member
  • *
  • ارسال: 296
پاسخ : مشکل در تکه کد
« پاسخ #17 : 09 فروردین 1396، 04:45 ب‌ظ »
دیگ ببخشین اگ جای نامناسبی موضوع باز کردم
بهتره به مدیران انجمن بگید جا به جاش کنن

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19719
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : مشکل در تکه کد
« پاسخ #18 : 13 فروردین 1396، 03:01 ق‌ظ »
موضوع به دلیل هنوان نامناسب و پرسیدن چندین پرسش در یک موضوع قفل شد.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن