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

کمک و پشتیبانی => انجمن عمومی => نویسنده: mrmrn در 25 مهر 1389، 07:58 ب‌ظ

عنوان: نحوه اجرای برنامه ها پشت سر هم بدون نیاز به دستور
ارسال شده توسط: mrmrn در 25 مهر 1389، 07:58 ب‌ظ
بسم الله.
سلام.
ما تو دانشگاهمون چندین عدد کامپیوتر 8 هسته ای داریم که برا محاسبات سنگین بهشون نیاز داریم.مسئله اینه که ما فقط میتونیم وقتی داخل دانشگاهیم ازشون استفاده کنیم.
میخوام بدونم تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟؟
تا همینجا رو اگه جواب بگیرم کلی از برنامه جلو میافتیم چون شبها کامپیوترامون بیکاره.
حالا سوال رو عوض میکنم.فعلا ما نیاز نداریم که مثلا خروجی اولی بشه ورودی دومی و ...
ولی اگه یه روزی چنین نیازی داشتیم چکار باید بکنیم؟
عنوان: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون  
ارسال شده توسط: amirhomayoun در 25 مهر 1389، 08:59 ب‌ظ
نقل‌قول
تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟

first_command ; second_command ; third_command

نقل‌قول
خروجی اولی بشه ورودی دومی

first_command | second_command | third_command
عنوان: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون نیاز به دستور
ارسال شده توسط: Aref در 25 مهر 1389، 10:22 ب‌ظ
با سلام
اگر منظور شما رو درست فهمیده باشم شما یک تعداد دستورات اجرایی لینوکسی دارید که در ترمینال اجرا میکنید (مثلا برنامه فلان رو اجرا کن- بعد خروجیها رو مثلا کپی کن و غیره)
یعنی به بیان بهتر میخواهید یک سری کارها رو اتوماتیک انجام بدهد.
خوب اصولی ترین و بهترین راه استفاده از Bash file  و در واقع shell scripting است. تمامی دستوراتی که می خواهید به ترتیب اجرا شود را درون یک فایل متنی وارد کنید و به راحتی آن را اجرا کنید (البته باید خط اول فایل را اصلاح کنید)
 اگر در وسط کار نیاز به پردازش داده ها نیز دارید می توانید از هر زبان برنامه نویسی که دوست دارید و به کارتان می خورد استفاده کنید. و آن را با دستور مناسب درون  bash file خود فراخوانی و اجرا کنید.
ناگفته نماند Bash یکی از معروفترین ومتداولترین shell های موجود برای لینوکس و BSD است. در واقع یک زبان برنامه نویسی است که میتوانید از حلقه و شرط و ... نیز در آن استفاده کنید.
برای کسب اطلاعات بیشتر و بهتر به لینکهای زیر مراجعه کنید:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc9 (http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc9)
http://tldp.org/LDP/abs/html/ (http://tldp.org/LDP/abs/html/)
http://www.freeos.com/guides/lsst/ (http://www.freeos.com/guides/lsst/)
عنوان: پاسخ به: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون  
ارسال شده توسط: abdozzahra در 25 مهر 1389، 11:19 ب‌ظ
نقل‌قول
تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟

first_command ; second_command ; third_command

نقل‌قول
خروجی اولی بشه ورودی دومی

first_command | second_command | third_command

جسارتا:
اگه میخواید درصورت موفق آمیز بودن اولی , دومی اجرا بشه باید بزنید 
first_command && second_command && third_command
و در صورت عدم موفقیت دستور دیگری اجرا شود:

first_command|| second_command || third_command
عنوان: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون نیاز به دستور
ارسال شده توسط: mrmrn در 26 مهر 1389، 01:36 ب‌ظ
مرسی بابت پاسخهاتون.هم از امیر آقا هم عبدالزهرا و هم دوست خودم عارف عزیز.
ما تو کارمون عدم موفقیت نداریم.چون برناممون یک سری محاسبات سنگین و نه پیچیده ریاضی رو انجام میده و در نهایت یه جوابی بهمون میده.ولی یه سوال،این که گفتین 
نقل‌قول
و در صورت عدم موفقیت دستور دیگری اجرا شود:
یعنی چی؟یکم کژتابی داره!!
عنوان: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون نیاز به دستور
ارسال شده توسط: abdozzahra در 27 مهر 1389، 09:14 ب‌ظ
هر دستوری یک کد خروجی داره که با echo $? قابل مشاهده است

قسمت اول دستور && هنگامی اجرا میشود که  $? برابر صفر و || هنگامی اجرا میشود که  $? غیر صفر باشد

به عبارت دیگه به معنای else در برنامه نویسی است مثلا کد زیر:
code 1&& code 2 || code 3
معادل دستور زیر است

if code 1
then
code 2
else
code 3
fi
عنوان: پاسخ به: نحوه اجرای برنامه ها پشت سر هم بدون نیاز به دستور
ارسال شده توسط: mrmrn در 28 مهر 1389، 10:32 ق‌ظ
چه عالی.
مرسی از همگی شما رفقا.