چک لیست
حلقه
شرط درست بودن
ترتیب
اسکریپتهات را طبق بالا تنظیم کن تا کارت راه بیفته دقیقا مثل کاری که علیرضا با زنیتی انجام داده اومده با if گفته اگه شد برو بعدی اگه نشد نوتیفای بده و بسته, شو شما هم شرط بذار اگه شد برو چک لیست بعدی اگه درست جرا نشد حلقه را ادامه نده و نرو چک لیست بعدی و ترتیبش هم با خودت.
@Ehsan-faal
احسان جان توی ترمینال حرف شما صحیح هست مثلا :
pstree > out && cp out out.backupاما یه اسکریپت مثلا 1000 خطی که یه عالمه سینتکس داره را نمیشه اینجوری کرد اصلا اسکریپتها با دستور /.و sh ران میشن.
مگه اینکه بگی :
sh fs1 && fs2 && fs3که اینم میگه اگه اجرا شد برو بعدی نمیگه اگه درست اجرا شد برو بعدی .
فکر کن اسکریپت نوشتی تعداد پروسههای ران شده با فلان یوزر را ضرب در دو کنه بده و وقتی رانش میکنه مثلا میگه پروسهها اینا هستند اما عمل ضرب را انجام نمیده در این صورت اسکریپت ران شده اما درست کار نکرده.
اون دستور که دادم فقط میگه اگه خود اسکریپت ران نشد نرو بعدی مثلا میزنی دستور را میگه توی دایرکتوی هوم فایل fs1 نیست و نمیره بعدی ولی اگه بود و رانش کرد میره بعدی و دیگه چک نمی کنه که اسکریپت چی میخواد و چی گفته و ...
ویرایش :میایم یه تست میزنیم که چطور عمل میکنه ( خودم انجام دادم و نشد )
با دستور زیر یه فایل شل درست میکنیم :
nano fs1.shاکنون که ادیتور نانو باز شده خطوط زیر را میزاریم توش :
#!/bin/bash
mkdir 2
cd 2
cp 1 2اسکریپت میگه توی جایی که هستی پوشهی 2 را بساز و بعد برو توی پوشهی دو و فایل 1 را یک کپی ازش بگیر بذار توی فایل 2.
این اسکریپت مشکل دارد چون فایل 1 ساخته نشده.یه اسکریت دیگه هم مینویسیم :
nano fs2.shو خطوط زیر را توش میذارم :
#!/bin/bash
mkdir 1میگه یه پوشه با اسم یک بساز.
حالا به جفتشون دسترسی ران میدیم :
sudo chmod u+x fs1.sh fs2.shحالا با دستور زیر رانش میکنیم :
sh fs1.sh && sh fs2.shترمینال پیامی میده که میگه :
no such a file or directory
این پیام را که برای فایل 1 میده مربوط به اسکریپت مشکل دار فایل fs1.sh هست. حالا کافی با دستور زیر ببینیم که آیا پوشهی 1 ساخته شده است یا نه اگه ساخته شده باشد در این شرایط && اصلا کار ساز نیست.
lsخب توی خروجی 1 دیده میشه پس حرف من تا اینجا درسته.

حالا کافی پوشهی یک را با اسکریپت اول پاک کنیم و دستور را دوباره اجرا کنیم :
sudo rm -R fs1.sh 1و دوباره :
sh fs1.sh && sh fs2.shحالا اگه پوشهی یک ساخته شده باشه بازم حرف من درست بوده که مربوط به اجرا شدن خود فایل هست .
lsخودتون ببنید که پوشهی 1 ساخته نشده چون اسکریپت اول ران نشده.
