انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: mrmrn در 25 مهر 1389، 07:58 بظ
-
بسم الله.
سلام.
ما تو دانشگاهمون چندین عدد کامپیوتر 8 هسته ای داریم که برا محاسبات سنگین بهشون نیاز داریم.مسئله اینه که ما فقط میتونیم وقتی داخل دانشگاهیم ازشون استفاده کنیم.
میخوام بدونم تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟؟
تا همینجا رو اگه جواب بگیرم کلی از برنامه جلو میافتیم چون شبها کامپیوترامون بیکاره.
حالا سوال رو عوض میکنم.فعلا ما نیاز نداریم که مثلا خروجی اولی بشه ورودی دومی و ...
ولی اگه یه روزی چنین نیازی داشتیم چکار باید بکنیم؟
-
تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟
first_command ; second_command ; third_command
خروجی اولی بشه ورودی دومی
first_command | second_command | third_command
-
با سلام
اگر منظور شما رو درست فهمیده باشم شما یک تعداد دستورات اجرایی لینوکسی دارید که در ترمینال اجرا میکنید (مثلا برنامه فلان رو اجرا کن- بعد خروجیها رو مثلا کپی کن و غیره)
یعنی به بیان بهتر میخواهید یک سری کارها رو اتوماتیک انجام بدهد.
خوب اصولی ترین و بهترین راه استفاده از 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/)
-
تو تر مینال چکار میشه کرد که بفهمه بعد از اینکه دستور اول رو اجرا کرد اونوقت بره دومی و سومی و...رو اجرا کنه؟
first_command ; second_command ; third_command
خروجی اولی بشه ورودی دومی
first_command | second_command | third_command
جسارتا:
اگه میخواید درصورت موفق آمیز بودن اولی , دومی اجرا بشه باید بزنید
first_command && second_command && third_command
و در صورت عدم موفقیت دستور دیگری اجرا شود:
first_command|| second_command || third_command
-
مرسی بابت پاسخهاتون.هم از امیر آقا هم عبدالزهرا و هم دوست خودم عارف عزیز.
ما تو کارمون عدم موفقیت نداریم.چون برناممون یک سری محاسبات سنگین و نه پیچیده ریاضی رو انجام میده و در نهایت یه جوابی بهمون میده.ولی یه سوال،این که گفتین
و در صورت عدم موفقیت دستور دیگری اجرا شود:
یعنی چی؟یکم کژتابی داره!!
-
هر دستوری یک کد خروجی داره که با
echo $?
قابل مشاهده است
قسمت اول دستور && هنگامی اجرا میشود که $? برابر صفر و || هنگامی اجرا میشود که $? غیر صفر باشد
به عبارت دیگه به معنای else در برنامه نویسی است مثلا کد زیر:
code 1&& code 2 || code 3
معادل دستور زیر است
if code 1
then
code 2
else
code 3
fi
-
چه عالی.
مرسی از همگی شما رفقا.