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

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

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


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

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

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

آفلاین سید محمود رضا سجادی

  • Hero Member
  • *
  • ارسال: 704
  • جنسیت : پسر
    • مرکز برنامه نویسی ایران
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #75 : 30 آذر 1388، 01:30 ق‌ظ »
سلام
از دوستان کسی نمیدونه چرا آقای سجادی ادامه آموزش رو نمیگذارند ؟
من خیلی دلگرم شده بودم چون جای دیگه ای یک آموزش تو این حالت تا حالا ندیده بودم .
در ضمن انجمنی هم که معرفی کردن خالی بود.


سلام
به خدا شرمنده
من خودم از ادمای بدقول بدم میاد اما خودم از همه بد قول ترم
درباره فرومی که معرفی کرده بودم ( یا ساخته بودم) باید بگم که نیاز به کمک داشتم که غیر از دوتا از دوستان کس دیگه ای که وقت نداشت و لذا اون سایت هم به تاریخ پیوست(فعلا)
اما هرجور شده وقتی یکم سرم خلوت تر بشه اونو دوباره راه میندازم
از شما و هرکس دیگه ای که این آموزش رو دنبال میکرد عذر خواهی میکنم
سرم خیلی شلوغه چون اگه خیلی زود پروژه ام رو دفاع نکنم برام صفر رد میشه اما حتما ادامه میدم
بازم شرمنده


برای شروع مجدد (ایشالا که دیگه تنبلی نکنم) با آخرین جدولی که کشیده بودم شرو میکنم
Type         |  Option Used to   |     Meaning
         |  Create Type      |  
======================================================================================================
Check boxes      |  --checklist      |  Allows you to display a list of items, each of which
         |           |  may be individually selected.
------------------------------------------------------------------------------------------------------
Info boxes      |  --infobox      |  A simple display in a box that returns immediately,
         |           |  without clearing the screen.
------------------------------------------------------------------------------------------------------
Input boxes      |  --inputbox      |  Allows the user to type in text.
------------------------------------------------------------------------------------------------------
Menu boxes      |  --menu      |  Allow the user to pick a single item from a list.
------------------------------------------------------------------------------------------------------
Message boxes      |  --msgbox      |  Displays a message to the user with an OK button
         |           |  when they wish to continue.
------------------------------------------------------------------------------------------------------
Radio selection boxes   |  --radiolist      |  Allows the user to select an option from a list.
------------------------------------------------------------------------------------------------------
Text boxes      |  --textbox      |  Allows you to display a file in a scrolling box.
------------------------------------------------------------------------------------------------------
Yes/No boxes      |  --yesno      |  Allows you to ask a question, to which the user
                  |  can select either yes or no.

واما ادامه بحش شیرینی برنامه نویسی
دو نکته رو باید توجه داشت
یکی اینکه چندین مدل دیالوگ دیگه هم وجود داره مثل دیالوگ پسورد یا چیزای دیگه که به اینها دیالوگ های غیر عادی یا unusual هم میگن و برای مطالعخ بیشتر از اینترنت قابل دسترسی هستند
و نکته دیگه اینکه برای اینکه خروجی های این دیالوگ ها رو داشته باشیم باید مقدار استاندارد اررور رو داشته باشیم و به قولی کپچر کنیم
به عنوان یه راه ساده و معمول میشه اون رو به یه یک فایل موقت انتقال داد و خروجی اون رو در یک فایل موقت ریخت
برای به دست آوردن مقادیر yes/no میشه از مقدار exit استفاده کرد که همونجوری که قبلا گفتم مقدار ۰ برای yes و موفقیت و مقدار ۱ برای شکست به کار میره
همه دیالوگ ها پارامتر های خیلی زیادی دارند که کنترلشون میکنه
به عنوان مثال اندازه و ابعاد و یا شکل دیالوگ
خوب بعد از کمی مطالعه بیشتر در باره دیالوگ ها و پارامترهاش سعی میکنم تا یه برنامه کوچیک هم با هم بنویسیم

به جدول زیر دقت کنید
Dialog Type   |   Parameters
======================================================================
--checklist   |   text height width list-height [tag text status] ...
----------------------------------------------------------------------
--infobox   |   text height width
----------------------------------------------------------------------
--inputbox   |   text height width [initial string]
----------------------------------------------------------------------
--menu      |   text height width menu-height [tag item ] ...
----------------------------------------------------------------------
--msgbox   |   text height width
----------------------------------------------------------------------
--radiolist   |   text height width list-height [tag text status] ...
----------------------------------------------------------------------
--textbox   |   filename height width
----------------------------------------------------------------------
--yesno      |   text height width


خوب حالا یه مثال
فکر کنم اگر هریک از دوستان این مثال رو خوب متوجه بشن در درک مثال های بعدی و مثال ها و برنامه های پیچیده تر مشکلی نداشته باشند

ما یه چک لیست میسازیم و تایتل یا عنوان اون رو Check me میذاریم و توضیح اون رو میذاریم Pick Numbers این دیالوگ رو با ارتفاع ۱۵ و عرض ۲۵ کاراکتر میسازیم

dialog --title “Check me” --checklist “Pick Numbers” 15 25 3 1 “one” “off” 2 “two” “on” 3 “three” “off”
خوب تنها نکته مهمی که به نظرم میرسه تا توجه شما رو بهش جلب کنم اینه که سه پارامتر رو برای هر منو آیتم باید مقدار دهی بشه
Bullet Number
Text
Status

به عوان مثال اولین چک لیست ما دارای شماره ۱ و متن one هستش. موقعیت این آیتم هم off هستش  ;)

خوب برای اینکه یه برنامه بنویسیم نیاز داریم تا خروجی خطای استاندارد (standard error) رو به یه فایل منتقل کنیم و یا با متغیر ها و پارامتر های سیستمی که قبلا باهاشون آشنا شدیم خروجی دستور قبلی رو بخونیم

به برنامه ساده زیر دقت کنید
#!/bin/sh
# Ask some questions and collect the answer
dialog --title “Questionnaire” --msgbox “Welcome to my simple survey” 9 18

خوب ما بایه پیغام شروع کردیم تا یوزر رو از اونچه که اتفاق میفته مطلع کنیم و نیازی به خروجی این دیالوگ نداریم

dialog --title “Confirm” --yesno “Are you willing to take part?” 9 18
if [ $? != 0 ]; then
  dialog --infobox “Thank you anyway” 5 20
  sleep 2
  dialog --clear
  exit 0
fi

حالا یه سوال ساده پرسیدیم که جواب یوزر بله یا خیر خواهد بود
و در ادامه هم همونجوری که میبینید از متغیر محلی $? استفاده کردیم تا جواب یوزر رو چک کنیم و در صورتی که جواب یوزر مثبت بود (یعنی خروجی دستور قبل صفر بود) که هیچی در غیر این صورت یه سری کار انجام میدیم و به عنوان مثال یه infobox که خروجی خاصی نداره قبل از خروج نمایش میدیم و در آخر هم از برنامه خارج میشیم

dialog --title “Questionnaire” --inputbox “Please enter your name” 9 30 2>_1.txt
Q_NAME=$(cat _1.txt)

اسم یوزر رو پرسیدیم و از یه inputbox استفاده کردیم و خروجی خطای استاندارد ، ۲ ، رو به یه فایل موقت منتقل کردیم که اسم این فایل _1.txt هست و ما میتونیم از درون این فایل مقدار Q_NAME رو داشته باشیم

dialog --menu “$Q_NAME, what music do you like best?” 15 30 4 1 “Classical” 2
“Jazz” 3 “Country” 4 “Other” 2>_1.txt
Q_MUSIC=$(cat _1.txt)

یک منو با ۴ گزینه مختلف نمایش داده شده و در نهایت خروجی خطای استاندارد رو دوباره ذخیره و در یک متغیر بارگذتری کردیم

if [ “$Q_MUSIC” == “1” ]; then
dialog --msgbox “Good choice!” 12 25
fi

خوب حالا مقدار خروجی مورد بررسی قرار گرفته شده و بر اساس انتخاب یوزر عمل خاصی صورت گرفته
و در آخر هم :

sleep 5
dialog --clear
exit 0

برنامه بالا یک نمونه از یک برنامه کامل میتونه باشه
چون این روند معمولا در همه برنامه ها (حتی برنمه های خیلی بزرگ) طی میشه
همونجوری که مشاهده می کنید
در همه برنامه ها نیاز هست تا یه پیغام ابتدایی داده بشه
یک سری سوال از کاربر پرسیده بشه
این پرسش ها معمولا در یکی ااز قالب های متنی (مثل اسم) - تک انتخابی مثل منو یا رادیو باکس - چند انتخابی مثل چک باکس جا میشن
و در نهایت هم بر اساس انتخاب های یوزر باید اعمال مختلفی انجام بشه و در مواردی مسیر برنامه تغییر کنه
پس برنامه بالا چهارچوب یه برنامه کامل و اینتر اکتیو هست!

به زودی با هم یه برنامه کامل رو خواهیم نوشت  \\:D/

به امید دیدار

سخن آخر
----------------------------

دوستان من خودم تازه کارم و هیچی بلد نیستم
خوشحال میشم اگه سایر دوستان هم یه کمکی بکنند و هر چند وقت یه بار یه پست کوچیک آموزشی اینجا بذارند
ممنون
« آخرین ویرایش: 30 آذر 1388، 02:06 ق‌ظ توسط سید محمود رضا سجادی »
مرکز برنامه نویسی ایران
محلی برای تمامی علاقه مندان به برنامه نویسی http://www.SourceCenter.IR

آفلاین Aboozar

  • Jr. Member
  • *
  • ارسال: 47
    • صفحه شخصی گوگل
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #76 : 30 آذر 1388، 10:15 ق‌ظ »
دمتون گرم. شما واقعا مصداق فعالیتید!
آرزوهایت را یادداشت کن . خداوند آنها را فراموش نمی کند . اما ، تو یادت می رود که آنچه که امروز داری، خواسته دیروزت بوده است .

آفلاین armintirand

  • Jr. Member
  • *
  • ارسال: 37
بابا تو دیگه کی هستی
« پاسخ #77 : 08 دی 1388، 07:18 ب‌ظ »
سلام دوست عزی واقعا که گلی هرچی بگم کمه با اینکه این همه ندت نبودی ولی با یک پست غافلگیرم کردی کاش یک گزینه تشکر این انجمن داشت.

آفلاین amir2009

  • Sr. Member
  • *
  • ارسال: 452
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #78 : 24 دی 1388، 01:49 ب‌ظ »
خسته نباشی :)
آقا فکر گنم اگه میشد برات تشکر فرستاد تا حالا رکورد زده بودی  ;)
دمت گرم.اگه pdf بشه که دیگه محشره!

آفلاین سید محمود رضا سجادی

  • Hero Member
  • *
  • ارسال: 704
  • جنسیت : پسر
    • مرکز برنامه نویسی ایران
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #79 : 02 بهمن 1388، 01:08 ق‌ظ »
خسته نباشی :)
آقا فکر گنم اگه میشد برات تشکر فرستاد تا حالا رکورد زده بودی  ;)
دمت گرم.اگه pdf بشه که دیگه محشره!

لطف داری

دیگه چیزی از پرپژم نمونده
اگه خدا بخاد خودمم دوست دارم pdf کنمش
قول نمیدم اما تلاشم رو میکنم که الین نسخه pdf این آموزش ر برای عموم آپلود کنم تا عید نوروز (به مناسبت عیدی) و البته پیشاپیش عیدتون مبارک
مرکز برنامه نویسی ایران
محلی برای تمامی علاقه مندان به برنامه نویسی http://www.SourceCenter.IR

آفلاین سید محمود رضا سجادی

  • Hero Member
  • *
  • ارسال: 704
  • جنسیت : پسر
    • مرکز برنامه نویسی ایران
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #80 : 08 بهمن 1388، 08:16 ب‌ظ »
سلام مجدد
۱-پروژم دوباره گیر کرد(اگه دوست داشتیم دعا کنین  ;) ممنون)
۲-یه لیست خوب از اسکریپت های یونیکس پیداکردم
درواقع homework یا همون تکالیف شب دانشجویان هست
البته با جواباش
دیدم چون آموزشیه و از سوالاشم خوشم اومد لینکشو اینجا میذارم.
البته جواب هاشو تست نکردم
شاید غلط هم داشته باشه. به هر حال چیزی از زیبایی سوال ها کم نمیشه.
http://btechstudycircle.finduwant.com/FlAsH/Gallery001/Lab/labmanuals/UNIX--labmanual.doc


پیشاپیش سال نو مبارک
مرکز برنامه نویسی ایران
محلی برای تمامی علاقه مندان به برنامه نویسی http://www.SourceCenter.IR

آفلاین bahramwhh

  • Jr. Member
  • *
  • ارسال: 80
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #81 : 29 فروردین 1389، 09:42 ب‌ظ »
سلام دوستان
ممنون از مطالب خیلی خیلی خوبتون  =D>
یه اسکریپت ساده دارم که میزان استفاده‌ی کاربری که به عنوان آرگومان وارد می‌کنیم از فضای دایرکتوری خانگی‌ش رو به ما میده.
ولی به جای چاپ خروجی ( عدد ) همون رشته رو برامون چاپ می‌کنه
اگه ببینید مشکلش چیه ممنون میشم :
#!/bin/bash

if [ $# -lt 1 ]
then
echo "Your Should enter at least one argument to $0 Script !"
exit
fi

cd /home/$1
SPACE='du -s | cut -f 1'

echo "$1 account has used $SPACE Kilobytes of his/her space"


آفلاین سعید رسولی

  • ilius, saeedgnu
  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1543
  • جنسیت : پسر
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #82 : 30 فروردین 1389، 03:55 ق‌ظ »
بجای:
SPACE='du -s | cut -f 1'باید بنویسید:
SPACE=`du -s | cut -f 1`شما بجای back quote (که دکمه‌ش بالای Tab هست) سینگل‌کوت گذاشته بودید.
« آخرین ویرایش: 30 فروردین 1389، 04:41 ق‌ظ توسط سعید رسولی (ilius) »

آفلاین bahramwhh

  • Jr. Member
  • *
  • ارسال: 80
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #83 : 30 فروردین 1389، 12:22 ب‌ظ »
سپاس عزیز

آفلاین farshid_616

  • Newbie
  • *
  • ارسال: 7
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #84 : 02 اردیبهشت 1389، 03:22 ب‌ظ »
ایول کارت درسته !  کامل که شد حتما pdf  اش کن

آفلاین siap891

  • Newbie
  • *
  • ارسال: 11
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #85 : 27 خرداد 1389، 09:21 ب‌ظ »
+1

آفلاین faware

  • Newbie
  • *
  • ارسال: 20
سلام
« پاسخ #86 : 08 امرداد 1389، 01:18 ب‌ظ »
اقا مرسی فقط خواهشا میدونم سخته اما واسه دل ما هم که شده Pdf کنید تا واسه همیشه داشته باشیمشون.

آفلاین nice_2000

  • Newbie
  • *
  • ارسال: 14
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #87 : 16 مهر 1389، 10:22 ب‌ظ »
خدا قوت
ما منتظر Gtk هستیم ها!  :)

نا امید شدیم
« آخرین ویرایش: 16 مهر 1389، 10:47 ب‌ظ توسط nice_2000 »

آفلاین feeruzy

  • Jr. Member
  • *
  • ارسال: 56
  • جنسیت : پسر
    • My Personal Page
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #88 : 06 اردیبهشت 1390، 01:20 ق‌ظ »
برای اجرای این اسکریپت شما باید اول اجازه اجرا شدن رو بهش بدین
chmod +x firstویا اینکه بنویسید
/bin/sh firstواگر با chmod مجوز اجرا را بهش داده باشین با دستور زیر اجراش کنین
firstاگه با ویغامی مبنی بر اینکه دستور پیدا نشد مواجه شدید معنیش اینکه آدرس محل فایل در PATH وجود نداره پس شما چنتا راه دارین
۱- این فایل رو در یک آدرس معتبر کپی کنین
۲-دستور رو به شکل زیر اجرا کنین
./firstکه به این معنیع که این فایل در آدرس جاری قرار داره
۳- دایرکتوری جاری رو به PATH اضافه کنین یعنی
PATH=$PATH:.به اون نقطه آخر دقت کنین که به معنیه فولدر جاری هستش
۴-ویا اینکه با همون روش بند ۳ آدرس مطلق فلدر جاری رو به PATH اضافه کنین تا از هر جایی بتونین اسکریپت رو اجرا کنین

سلام٬ ممکنه با یه مثال روش تغیر PATH=$PATH:. رو توضیح بدید تا ما هم راه بیوفتیم؟ ???
زندگی جاریست!

آفلاین shahramlp

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
پاسخ به: شروع برنامه نویسی در لینوکس
« پاسخ #89 : 27 اردیبهشت 1390، 01:46 ق‌ظ »
+1
« آخرین ویرایش: 29 اردیبهشت 1391، 05:21 ب‌ظ توسط shahramlp »