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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: moslem.b در 23 آبان 1389، 08:02 ق‌ظ

عنوان: راهنمایی برای نوشتن یه اسکریپت (حل شد)
ارسال شده توسط: moslem.b در 23 آبان 1389، 08:02 ق‌ظ
من یه اسکریپت به شکل زیر دارم چجوری میتونم کاری کنم که اگه کاربر جوابی بجز y / n بزنه دوباره اسکریپت برگرده سوال رو از ابتدا تکرار کنه تا کاربر مجبور بشه y یا n بزنه
echo "Are you ready for update your system ? ( y/ n )"

read question1
if [ $question1  = "y" ] || [ $question1  = "Y" ]
then
{
apt-get update | echo "Your system upadated . . ."
elif [ $question1  = "n" ] || [ $question1  = "N" ]
then
echo "you should update system" | echo "Your system not upadated . . ."
else
        echo "Please chose y or n"
fi
عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: HojjatJafary در 23 آبان 1389، 10:58 ق‌ظ
#!/bin/bash

question1 = "x"

echo "Are you ready for update your system ? ( y/ n )"

while [ "$question1" != "Y" ] && [ "$question1" != "y" ] && [ "$question1" != "N" ] && [ "$question1" != "n" ]
do

read question1

if [ "$question1"  == "Y" ] || [ "$question1"  == "y" ]
then
echo "Your system upadated . . ."
elif [ "$question1"  == "N" ] || [ "$question1" == "n" ]
then
echo "You should update your system" | echo "Your system not upadated . . ."
else
echo "Please choose y or n!"
fi

done
عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: moslem.b در 23 آبان 1389، 02:45 ب‌ظ
مرسی حجت جان فقط این question1 = x که خط اول نوشتی واسه چیه ؟ تو ترمینال هم ارور میده
عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: lomion در 23 آبان 1389، 03:23 ب‌ظ
برای مقدار دادن اولیه هست که داخل حلقه با یه مقداری بره که حتما بدنه حلقه یه بار اجرا بشه.
عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: moslem.b در 23 آبان 1389، 04:36 ب‌ظ
ولی توی ترمینال ارور میده و وقتی حذفش می کنم بدون مشکل اجرا میشه line 3: question1: command not found

عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: HojjatJafary در 23 آبان 1389، 06:45 ب‌ظ
در ترمینال بنده که مشکلی وجود ندارد. شاید به دلیل وجود فاصله (space) اطراف '=' باشد. می توانید این مورد را امتحان کنید.

در هر صورت مقدار اولیه متغیر question1 چیزی غیر از کاراکترهای y,n ,Y,N می باشد که بدون اشکال اجرا می شود.

خوشحالم که مشکلتان حل شد. قرار دادن [کلمه حل شد] در عنوان تاپیک را فراموش نکنید.

موفق باشید.
عنوان: پاسخ به: راهنمایی برای نوشتن یه اسکریپت
ارسال شده توسط: moslem.b در 23 آبان 1389، 10:49 ب‌ظ
مرسی از کمکتون