با سلام
تو سوال اول الگوریتم دوستان خیلی خوب بود و واقعا راه حل بهتری به ذهن من نمی رسه (البته می شد از 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
در مورد سوال سومتون (در خواست از یک سایت) هم باید بگم متاسفانه خیلی گنگ و کلی پرسیدین و واقعا نمی شه نظری داد لطفا سوالتون رو دقیق تر بپرسین (البته تو یک تاپیک مجزا)