انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: moslem.b در 03 آذر 1388، 09:12 بظ
-
چجوری میشه توی یه شل اسکریپت دوتا سوییچ یه فرمان یا کلا دوتا فرمان جداگاه رو همزمان با هم اجرا کرد ؟
-
سوال دقیق باعث جواب دقیق می شه.
منظورت رو کامل متوجه نشدن.. خب دو تا سوییچ رو می ذاری پشت هم.. مثلا ls -lh هم به فرمت طولانی (تاریخ فایل و حجم و ... ) نشون می ده و هم اعداد رو قابل خوندن توسط انسانهای معمولی می کنه (:
برای اجرا کردن دو تا دستور همزمان هم کافیه پشتشون یک & بذاری. فقط یک دونه اند ته دستور باشه، به پوسته می گی که این رو در پس زمینه اجرا کنه و دوباره خط فرمان رو برای دستور بعدی بده به تو.
-
جادی جان ممنون از راهنماییت
منظور من این بود که مثلا ما دو تا فرمان رو میخواییم اجرا کنیم یکیش به این صورته
zenity --entry
و اون یکیش به این صورت
zenity --notification
من میخوام هر دوتا دستور با هم اجرا بشن نه اینکه دومی منتظر بمونه تا اولی اجرا بشه
یه سوال دیگه هم دارم: چجور میتونم یه خروجی رو با یه دستور دیگه ادامه بدم ؟ مثلا توی دستور zenity --entry وقتی zenity باز میشه شما باید یه لینک بهش بدین که بعد این لینک با wget دانلود بشه چجوری این خروجی رو با wget استفاده کنم ؟
-
در مورد دستورات که اگر توی یک فایل بش هستی می تونی آخر هر کدوم یک علامت & بذاری تا توی پشت صحنه اجرا بشن. در واقع دستور اول اجرا میشه و بدون اینکه چیزی رو متوقف کنه می ره پشت صحنه و بعد دستور بعدی اجرا می شه (این «بعد» یعنی هزارم ثانیه یا کمتر (: ))
در مورد دادن ورودی به برنامهها، توی یونیکسی ها همیشه پایپ رو داریم یعنی | رو که ورودی و خروجی برنامههایی که از ورودی و خروجی استاندارد اطلاعات می خونن رو به هم وصل می کنه. در مورد wget اما کار نخواهد کرد چون wget از ورودی استاندارد نمی خونه و حتما پارامتر جلوی دستور می خواد. در این موارد می تونی از پایپ و xargs استفاده کنی. مثلا اینطوری:
jadi@jubun:/tmp$ zenity --entry | xargs wget
که در واقع اول زنیتی اطلاعات رو می خونه و بعد با پایپ به عنوان ورودی می ده به ایکسآرگز. ایکس آرگز هم کارش اینه که هر چی بهش ورودی بدن رو می ذاره ته دستوری که جلوش نوشته شده و در نتیجه اون ورودی می ره به عنوان آرگومان دبیلوگت.
-
ممنون از راهنماییت جادی جان (http://www.pic4ever.com/images/toyou.gif)