از Pista Academy حمایت کنید
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 17 آموزش متخصص مهندسی داده و بیگ دیتا، مدرس به بررسی محاسبات ریاضی در اسکریپتنویسی پرداخته است. ابتدا اهمیت محاسبات ریاضی در پردازش دادهها و کنترل منابع سیستم مورد توجه قرار گرفته است. سپس به مفاهیمی مانند عملگرها، اولویت محاسبات، ساختارهای شرطی (ایف، ارس، الیف)، و لوپها اشاره شده است. در بخش دوم، به بررسی فایلهای موجود در دایرکتوریهای لینوکس و استفاده از دستورات `while` و `for` در اسکریپتهای لینوکس پرداخته شده است. همچنین به مفاهیمی مانند حلقههای بینهایت، دستورات `break` و `continue` اشاره شده است.
نکات کلیدی
محاسبات ریاضی در اسکریپتنویسی برای کنترل منابع و تصمیمگیری استفاده میشود.
استفاده از عملگرها، اولویت محاسبات، و روشهای مختلف نوشتن اسکریپت مورد بررسی قرار گرفته است.
نکته مهم اول: در دستورات لینوکس، مسیر فایلها باید به درستی مشخص شود تا به فایل مورد نظر دسترسی پیدا شود.
نکته مهم دوم: استفاده از حلقههای `while` و `for` در اسکریپتهای لینوکس نیاز به توجه به شرط ورود به حلقه و نحوه پایان آن دارد.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه بحثمون. این جلسه میخوایم اول
راجع به محاسبات ریاضی توی بش صحبت بکنیم.
حالا چرا محاسبات مهمه؟ چون واقعاً یه
جایی نیاز داریم بهش. مثالش الان اینجا
دارید میبینید مثلاً میزان مصرفی دیسک یه
عددیه که میتونین روش یه محاسباتی انجام
بدین و بر اساس محاسباتی تصمیمی بگیریم یا
مثلاً مموری
بش به طور معمول میگه که محاسبات ریاضی توی اعداد رو داره یه همچین چیزی
و میتونی اینا حساب کتاب بکنه
اما روش اصلیش اینجوریه که شما یه علامت
دالر میذارید د تا پرانتز اون اکسپرشن
در حقیقت اون محاسباتتون رو وسطش
مینویسید
مثل یه چیزی که اینجا دارید میبینید میرم همینو الان من اجرا کنم
قبلش بذاری سیل کلا اسش اسش استاپ
کپی
است
خب میبینید نتیجهای که میشه ۳۰ رو بهمون برگردوند.
میگه داخل این شما میتونید اسم وریبلها
رو بدون نیاز به اینکه پشتش از اینا
بذارید بنویسید. چون یه دونه پشتش کلاً
گذاشتید. نیاز نیست این شکلی بنویسید.
میتونید بنویسیدا خطا نمیده ولی نیاز
نیست.
فرمی که پیشنهاد میده در حقیقت اینه. بذارین زومشو بیشتر کنم که راحتتر ببید.
خب
به اضافه منها ضرب تقسیم و باقیانده اینا
عمل ۵ تا عملگر اصلیمون هستن که نیاز به
توضیح دیگه نداره
اینم که دارید میبینید مثالشو اولویت بندشم مثل همون قواعد ریاضیه یعنی
اینجا اول میاد ضربو حساب میکنه بعد جمعو
میساب میکنه یه د میگه ۳۴ تا ۱۲ تا به
اضافه ۲ میشه ۱۴
یه همچین چیزی هم داریم پلاس پلاس و احتمالاً مینوس مینوس یعنی برای اینکه کم
بکنه یا به اضافه مساوی یعنی کانتو ۵ تا
باشه اضافه کن این مدلی هم میشه نوشت
یه نکته که هست اینکه زمانی که اینجوری مینویسید دیگه نیاز نیست پشتش از این بیل
بلکها بذارید از این علامت دالر
تفاوتشون چیه اگر اینو بذاری ذاید یعنی داخلش داره یک عمل ریاضیاتی که مبتنی بر
متغیر انجام میدید
اینجا داره یک عمل مستقیم انجام میدید یه
رقم چند تا چیزو با همدیگه مثلاً یه بلایی
سرش بیارید
اینم روش قدیمیه که بعضی اسکریپتهای قدیمی که امکان داره اینم ببینید با دستور
اکسپرشن
این مدلی هم امکان داره میگه ببینید اینجوری بیاد بنویسه بریزه داخل لد و در
نهایت خروجی چاپ کنه این چیز باحالیه
داریم کار میکنم
خب میگه روش پیشنهادی اینه همون چیزی که یاد گرفتیم ابتدایم
یه روش دیگههمون اینه یه یه روش دیگهمونی
س۳ تا روش برای نوشتنش وجود داره ولی میگه
روش پیشنهادی الان اینه
دیگه رفت تو مثال زدن اینجا مثلاً میاد با دیس یوزج یه کاری انجام میده
مثال مثال روم میذارم جلوتر که وارد
مثالهای عملی توی درسمون میشیم. من فقط
فعلاً میخوام تئوری بش اسکریپتینگو بگم و
رد شم ازش.
خب بریم سراغ درس بعدی. اینو رد کنیم اینا
رو بریم درس بعدی.
خب بریم سراغ اپراتور بعدیمون. یه سری اپراتور عددی رو ما دیدیم. یه سری
اپراتور برای تکست داریم فایل تست داریم و
لاجیکال داریم.
خب اینو که بگذاریم اپراتوری عددی مثل چی
قبلاً این بار دیده بودیم بز مساوی
نات اکوال بزرگتر از
بزرگتر از و مساوی کوچکتر از کوچکتر از و
مساوی خیلی جا میتونه استفاده بشه من
مثالاشو دیگه میذارم برای زمانی که توی
درسمون نیاز باشه اسکریپت بنویسیم
بعد اینم یه مثال سادهشو مثلاً اینجا دار
میبینید مثلاً گفته اگه سی پیو یوزج
بزرگتر از ترشولدمون شد سپس این کارو بکن
این کارو نکنید میگه بهتره از این استفاده کنید یعنی از
این علامت استفاده نکنید
استرینگ اپراتورها مثل اینا مساوی داریم نات مساوی دش زد که
یادتون باشه دش ان
دش زد بحث خالی بودنو چک فکر میکنه دش ا غیرخالی بودن یعنی اگه این خالی نباشه این
درسته این اگه این خالی باشه این کلش میشه
تروح
میگه که متنا توی بخش به بزرگ و کوچیکی حساسن یعنی فرق وجود داره بین بزرگ و
کوچیکش
فایل تست آپ اپراتورها چیان مثلاً دش ای
میگه که این پت وجود داره دش اف فایل
فایلو چک میکنه وجود داشته باشه دش دی
دایرکتوریو چک میکنه وجود داشته باشه دش
آ ریدیبله دش دبلی رایتبله و الی آخر
بذارید مثالاشو زمانی که برسیم انشاالله
بهتون خواهم
لاجیکال اپراتورا مثل اند اور و نات تو ش معمولاً با اینجوری نشون میدن این
انده این اور اینم ناته
میگه اینا یکسان نیستن پس میگه این یعنی انتهای کامنت اصلاً
اپراتور نیست
خب و دیگه به نظرم بریم سر ادامش من یه ذم با ریتم تندتر میرم برای اینکه
بتونیم سریعتر از بعد رد بشیم بریم سراغ
بخش بعدی درسمون
خب بحث بعد کاندیشنه که یکی از مباحث مهمه
توی هر زبان برنامهنویسی
ایف و ارس و الیف
زمانی که میخوام شرط بذاریم که اگه یه
چیزی درست بود یه اتفاقی بیفته اگه درست
نبود یه اتفاق دیگه بیفته ساختارشم به این
شکله
شرط داخل این میذاریم بعد یه دل میذاریم
و اون اگر شرط درست باشه چه تورو باشه این
اجرا میشه یه اف ای هم آخرش میذارم که
برای تموم شدن اون شرطه
اگه چند تا حالتو میخواستیم در نظر
ببخشید اگه میخواستیم حالتی که شرط درست
نیست رو هم در نظر بگیریم ارس میذاریم
دیگه اینا رو من سریع رد میشم چون قطعاً
همتون یه تجربه برنامه دارید
یه جایی هم الیفم اگه چند تا شرطو
میخواستیم چک کنیم تو دروب از این حالت
استفاده میکنیم
دیگه اینا رد میشن میرم سراغ به نظرم ادامه چون اینا رو بچهها باید تو پروژه
واقعاً یاد بگیرید
خب
ماژور بعدی که میخوایم راجعش صحبت کنیم راجع کیس داره صحبت میکنه کیسم
بچهها تو خیلی از زبانهای دیگه دیدید ما
اگه بخوام با ایف چند تا شرطو بنویسیم
باید یه همچین ساختاری رو بنویسیم
ایف الیف الیف الیف الی آخر اما کیس این
کارو خیلی سادهتر میکنه. اون وریبلتونو
میذارید بعد حالتهای مختلفو میذارید هر
کدوم اگه اتفاق افتاد یه کامندی اجرا میشه
و در نهایت اگر هیچ کدوم نبود دیفالت
مثلاً
اینجا نگاه کنید میاد یک اکشنی رو از کاربر دریافت میکنه بعد میگه بر اساس
اکشن چی باشه؟ اگر استارتو نوشته بود این
اتفاق بیفته اگر استاپ بود این اتفاق و
الی آخر خیلی تره تمیزتر از اینه که شما
ایفهای تو در تو بنویسید
اینم میگه که مثلاً میتونید حالتهای مختلف رو تو
شرطتون اینجا با همدیگه استفاده کنید اینا
همه اور دیگه بینشون میگه اگه نوشت بزرگ
نوشت یس نوشت یس با اینجوری نوشت همش
اوکیه هر کدومو نوشت این اتفاق بیفته برای
نوعهم همچنین
با آرگومانشم داره مثال میزنه به نظرم اصلاً برای ساختن منو خیلی چیز باحالیه
میگی یه مثلاً اینا رو اکو میکنه کاربر
انتخاب میکنه هر کدوم انتخاب کرد مثلاً
اگه یکو انتخاب کرد یه اتفاق د رو انتخاب
کرد یه اتفاق فا الی آخر
مثلاً اینو با هم بریم ببینیم من اینو کپی میکنم
منو بهم میده مثلاً من میخوام معموری مری یوزجو ببینم سه رو میزنم
مموری یوزجو بهم نشون میده برای ساختن منو
خیلی چیز خوبیه کیس
آها میگه یه مشکلی که داره این که تو منو وقتی من مثلاً یکی رو انتخاب میکنم دیگه
اسکریپت تموم میشه نمیذاره من دو بار
انتخاب کنم برای این کار به لوپ نیاز
داریم که ماژول بعدی قراره جاش صحبت کنیم
بریم ماشین بعدی دیگه ایناشو جمعبندیاشو بگذریم ازش
یه ذره بایست تندتر بریم جلو
خب مش بعدی راجع به لوپ میخواد صحبت کنه ما لوپهای مختلف داریم فور داریم وایل
لوپ آنتیل بریک کانتینیو و الی آخر
که اکثرشو باز دوستانی که سابقه برنامه
دارن طبیعتاً آشنا هستن باهاش این فور
لوپه روی یه وریبلی روی مقادیر یک وریبلی
لوپ میزنه و یه کاری رو انجام میده مثلاً
میگه برای سرورهایی که در این لیست وجود
دارن یه همچین کاری بکن
رنجم میتونیم بدیم مثلاً ی تا ۵ یه مدل دیگهشم اینجوریه
نوشتنش
روی آرگومانا اسکریپت مثلاً اگه ۵ تا
آرگومان داشته باشه میتونیم اینجوری رو
همه آرگواناش لوپ بزنیم
بعد روپرو فایل میتونیم بزنیم مثلاً تمام فایلهایی که تو این آدرس وجود دارن و
آخرشون فرمتشات لاگه
خیلی مهم بود این چیز باحالیه
بذاریم یه مثال براش بریم بزنیم نظرتون چیه که
بذار مثال اینو با هم ببینیم این ضرر نداره خب
من اینو کپی میکنم میذارم اینجا بعد دوباره بیم این خب میگم
که برای فایلهایی که داخل اسلش هوم
پیستا هستند و فرمتشون
تکسته
چیکار کن بیار فایلا رو بهم نشون بده همین
کفایت میکنه
حالا من اینجا چند تا الان فال تکست دارم د تا دارم یکی دیگه هم درست کنم مثلاً
تاچ
تست سدا
تیسدی
یه چارم درست کن حالا ببین اون اسکریپتر
رو اجرا کنیم ببینیم چی میشه
هیچ اتفاقی نیفتاد
چرا را
آ یه لحظه س
میگه که تو لاین یک ما یه دونه خطا داریم خب بذار ببینیم چرا خطا داریم
آ فور فایل دو بار نوشته شده
فول فایل این این الان باید درست کار کنم الان درست شد نه واسم توی لاین ۸ سینتک
ارور دارین
اینجا این شکلی شده یه دونه آ هم اینجا اضافه شده
الان درد
من اینو کپی که کردم حواسم نبوده
فکر کنم یه لحظه ویدیوم مشکل خورد یه تیکه از حرفام ضبط نشده من دوباره یه تیکه رو
میگم فکر کنم نیاز باشه دوباره بگم
اجازه بدید نمیدونم از کجا ضبط نشد ولی
حالا
فرو که دیدیم اینجا بچهها این فایل روم
من یه بار دیگه نشونتون بدم این شکلی شد
میگم برای فایلهایی که توی دایرکتوری هوم
هستن توی پوشه پیست دایرکتوری پیستا و
فایل تکست هستن اینو اجرا کن اینو وقتی
اجرا بکنیم یه همچین چیزی بهمون میده تمام
فایلای تکستی که اونجا هستو بهمون نشون
میده من اشتباهی که کرده بودم تو اون فایل
اولیه که نوشته بودم بذار پیدا کنم
آها این بچهها یه متغیر خود لینوکسه هوم یعنی هوم دایرکتوری یوزری که لاگینم منو
با روت لاگینم اگر اینجوری بنویسم میره تو
هوم دایرکتوری روت اسلش پیستا داخلش نیست
که اصلاً چیزی نشون بده
پس باید این شکلی مینوشت شم حتما
بعد وایل داریم وایل حلقهش اینجوری که یک شرطی
رو اول چک میکنه اگه درست باشه میره
کامندو اجرا میکنه
فقط باید حواسمون باشه که وایل خطری اینو داره که یه لوپ بینهایت بشه مگر اینکه
تعمداً بخوایم این کارو بکنیم
یعنی تعمداً یه لوپ بینهایت بذاریم که یه
کاری هی انجام بشه
آنتیل برعکس لوپه. اگه اول شرط درست نباشه میاد داخلشو اجرا میکنه برعکس در حقیقت
وای لوپه.
بریک باعث میشه که کل لوپ متوقف بشه.
کانتینیو باعث میشه که ادامه
اسکیپ بکنه از اجرای ادامه این و بره
ابتدای لوپ. وارد دور بعدی لوپ بشه.
اینم یه توضیح کلی امیدوارم که ویدیو بد ضبط نشده باشه این قسمت
خیلی خب
ویدیومون طولانی نشه بریم بیایم ادامهشو
جلسه صحبت کنیم که میشه وارد فانکشنا
میخوایم بشیم فعلاً خداحافظ
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
حلقههای `while` و `for` در اسکریپتنویسی برای انجام عملیات تکراری استفاده میشوند. `while` برای تکرار تا زمانی که شرط درست باشد و `for` برای تکرار به تعداد مشخص است.
برای دسترسی به فایلهای موجود در دایرکتوریهای لینوکس، مسیر فایلها باید به درستی مشخص شود. این کار با استفاده از دستورات مانند `while` و `for` در اسکریپتهای لینوکس انجام میشود.
دستور `break` به پایان حلقه میرسد و اجرا را متوقف میکند، در حالی که `continue` به ادامه اجرا در حلقه میپردازد بدون اجرای خط بعدی.
آخرین بهروزرسانی محتوای متنی:
🎓 دوره جامع «متخصص مهندسی داده و بیگ دیتا» | Pista Academy در دنیای امروز، حجم عظیمی از دادهها هر روز توسط سازمانها، کسبوکارها و سرویسهای آنلاین تولید میشود؛ اما داده زمانی ارزشمند است که بتوانیم آن را بهدرستی جمعآوری، ذخیره، پردازش و مدیریت کنیم. در دوره «متخصص مهندسی داده و بیگ دیتا» در Pista Academy، قدمبهقدم با مفاهیم، ابزارها و تکنولوژیهای مهم حوزه Data Engineering و Big Data آشنا میشویم و تلاش میکنیم مسیر یادگیری را از مفاهیم پایه تا ابزارهای حرفهای این حوزه طی کنیم. 📚 در این دوره با موضوعاتی مانند موارد زیر آشنا خواهید شد: 🔹 Linux Server و ابزارهای موردنیاز مهندسی داده 🔹 Python و Java برای کار با ابزارهای Data Engineering 🔹 مفاهیم دادههای توزیعشده و پایگاه داده 🔹 پایگاه دادههای رابطهای و SQL 🔹 پایگاه دادههای NoSQL 🔹 مفاهیم Big Data 🔹 اکوسیستم Hadoop 🔹 کار با ابزارهای Hadoop و مثالهای کاربردی 🔹 Apache Spark و پردازش دادههای حجیم 🔹 کار عملی با ابزارهای Spark 🔹 Kubernetes 🔹 خودکارسازی و مدیریت فرایندهای انتشار در مهندسی داده 🎯 این دوره برای چه کسانی مناسب است؟ اگر قصد دارید وارد حوزه مهندسی داده شوید، دانش خود را در زمینه Big Data گسترش دهید یا با ابزارهایی مانند Hadoop، Spark، SQL، NoSQL و Kubernetes بهصورت جدیتر آشنا شوید، این دوره میتواند مسیر مناسبی برای شروع و توسعه مهارتهای شما باشد. در طول دوره تلاش میکنیم مفاهیم را به زبان ساده و کاربردی بررسی کنیم و در کنار مباحث تئوری، با ابزارها و سناریوهای واقعی نیز آشنا شویم. ━━━━━━━━━━━━━━━━━━ 📌 نام دوره: متخصص مهندسی داده و بیگ دیتا 🏫 Pista Academy آموزش تخصصی، ساده و کاربردی اگر این آموزش برای شما مفید بود، با 👍 لایک کردن ویدیو و Subscribe کردن کانال Pista Academy از ادامه تولید آموزشهای تخصصی حمایت کنید. همچنین اگر درباره مباحث دوره سؤال یا پیشنهادی دارید، در بخش نظرات مطرح کنید. 👇 #مهندسی_داده #بیگ_دیتا #DataEngineering #BigData #Python #SQL #NoSQL #Hadoop #Spark #Kubernetes #PistaAcademy