از Pista Academy حمایت کنید
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 14 آموزش متخصص مهندسی داده و بیگ دیتا، مدرس به بررسی نحوه استفاده از متغیرها در اسکریپتها و مدیریت آنها میپردازد. ابتدا تفاوت بین دو روش خواندن متغیر و استفاده از براکتها برای اتصال متغیر به متن توضیح داده شده است. سپس قوانین نامگذاری متغیرها، اهمیت نامهای معنیدار و نحوه مدیریت متغیرهای محیطی با دستوراتی مانند export، readonly و unset مورد بررسی قرار گرفته است. در ادامه، به نحوه دریافت مقدار از کاربر با استفاده از دستور __ و اهمیت استفاده از دش پی و دش اس برای امنیت اطلاعات در ورودی پرداخته شده است.
نکات کلیدی
استفاده از براکتها برای اتصال متغیر به متن و تفاوت بین دو روش خواندن متغیر.
قوانین نامگذاری متغیرها (شروع با حرف یا آندر اسکور، جلوگیری از استفاده از دش و شروع با عدد).
نامهای معنیدار و مناسب برای متغیرها.
مدیریت متغیرهای محیطی با دستورات export، readonly و unset.
دریافت مقدار از کاربر با استفاده از دستور __.
استفاده از دش پی قبل از ورودی برای جلوگیری از نمایش اطلاعات در ورودی.
استفاده از دش اس برای امنسازی اطلاعات حساس مانند پسورد و توکن.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ
ادامه بحثمون. ما جلسه قبلی یاد گرفتیم که
چهجوری بتونیم وریبل داشته باشیم.
وریبل یه نکتهای داره اونم اینه که ما یه
مدل وریبل فراخوانی کردنمون این شکلیه.
یعنی یه علامت دالر میاریم پشتش میذاریم
اما یه مدلم اینجوریه.
حالا سؤالی که پیش میاد اینه که تفاوت این
د تا چیه؟
چه موقع ما میایم دور اسمش یه دونه از این
براکتها میذاریم؟ اینو میخوایم ببینیم
این جلسه.
پس ما دو روش برای خوندن وریبل داریم.
تفاوتشون چیه؟ میگه در بسیتا هر دو نتیجه
یکسانی داره
اما وقتی وریبلو به متن دیگری میچسبانیم
اونوقت این اهمیت پیدا میکنه.
فرض کنید یه وریبلی داریم به اسم سرور.
میخوایم خروجی
زیرو ایجاد بکنیم یعنی اسم وریبله یه
آدرسور یه متنی
ممکنه یه همچین چیزی بنویسیم هشتگ میگم
هشتگ دالر سرورکور بکآپ خب این چیزی که
برای بش ما در حقیقت میفهمونه اینه که
اسم متغیر سرور سر سرور بکآپه
خب و میره دنبال متغیری مثل سرور بکآپ
بگیر دستی که اسم متغیر ما سروره
ما هدفمون این بوده اسم متغیر سرور به
اضافه یه آدرس بکآپ بنابراین اینجا
مجبوریم بیایم دور اسم متغیرمون یه دونه
براکت بذاریم برای اینکه یه همچین خروجیو
داشته باشیم
این مهمترین کاربردیه که این براکته داره
خب نکته دیگهای داره بذار ببینیم اینو
اینجا رو نگاه کنید بچهها یه نکته باحالی داره میگه اگه به جای آندرسکور شما دش
بذارید
اینجا نیاز نیست براکت بذارید چرا چون درق
دش نمیتونه جزئی از اسم یک متغیر باشه
بنابراین نمیاد بگه اسم متغیر سرور و کاپه
همون سرور به عنوان اسم متغیر در نظر
میگیره و دش رو به عنوان ادامش در نظر
میگیره. ادامه متن.
خب اینم از این. بریم سراغ درس بعدیمون. فکر کنم نکته دیگهای نداشته باشه.
اما بریم سراغ قوانین نامگذاری متغیر توی شعر
میگه که اسما باید با حروف شروع بشه
میتواند با حروف شروع شود باید نیست
میتواند با حروف شروع شود
یا بادر اسکور
پس یا باید با حرف شروع بشه یا بادرکور
بعد از اولین کاراکتر میشه عدد نوشت یعنی شما نمیتونی با عدد شروع کنی ولی میتونی
بعدش عدد بذاری مهم اینه که اولش با عدد
شروع نشه
وریبل نباید با عدد شروع شود خیلی از
زبانهای برنامهنویسی اجازه نمیدن که
متغیر با عدد شروع بشه خیلیاشون حالا چرا
نمیدونم
بعد یه دلیلی که اصلاً متغیر بچهها میذارید
اینه که
جلوگیری بکنید از یه سری خطاها. خب یعنی
شما وقتی یه بار میرسید سرور د وبصف دسید
سرور د منظورتون وب سف د نیاز نیست وب سف
د رو هی تکرار بکنید و حتی یه جا امکان
داره اشتباه بنویسید خب شما اگه سرور د رو
اشتباه بنویسید یه خطایی میده اما اگه وب
صفر د۲ رو اشتباه بنویسید خطا نمیده همه
یک جا می وب سیف س بنویسید مهم نیست براش
موضوع دوم اینکه
اسم متغیررو بچهها سعی کنید یه اسمی بذارید که معنا مفهومی داشته باشه مثلاً
نذارید ایک مساوی مثلاً وب صفر د چون
بعداً که میخواید بیاید اون کدی که
نوشتید رو بخونید متوجه نمیشید ایکس چیه
پس بهتره که یه اسمی بذارید که متناسب
باشه با اون کاری که داره انجام میده که
بعداًهم خواستید بیاید کدتون رو بخونید یا
شخص دیگهای خواست کدتون رو بخونه بفهمه
مثلاً اسمایی که اینجا هستو نگاه کنید همه
اسمای باعنا و مفهومه.
گفتی که با عدد نمیتونید شروع کنید. دش نمیتونید استفاده کنید. بعد آندر اسکور
استفاده کنید اگه میخواید این کارو بکنید
و
نکته دیگهای ندارم. بزرگ کوچیکی هم مهمه. یعنی د تا متغیر با نوشتار یکسان ولی حروف
بزرگ کوچیک متفاوتن. نگاه کنید نیم با نیم
کوچیک متفاوته.
آره باید حواستون باشه که وقتی اینجا حروف کوچیک بوده اینجا نید حروف بزرگ بنویسید
چون این میشه یه متغیر دیگه
نامهای معنی دارم که بهتون گفتم ایناش نباید ایکس بذارید مثلاً
بیش از حد کوتاه نباشه بیش از حتم بلند نباشه مثلاً یه همچین چیزی نذارید خب سعی
کنید نامه معمولی باشه چند تا کاراکتر
باشه
آها ما یه سری کلید واژه داریم توی لینوس خب سعی کنید اسم متغیراتون شبیه اون کلید
واژهها نباشه
خب و اسم دیگه انتخاب بکنید
یه نکتهای رو چند سال پیش گفتم گفتم که شما نباید بیاید اسم متغراتون رو از اسمای
انتخاب بکنید که اسمای شناخته شده تو
لینوکس مثلاً ما یه سری متغیر یه سری
وریبل داخل لینوکس داریم که از قبل توی
شلمون وجود داره مثل مثلاً هوم یوزر شل پس
پی دبلودی
اینا یه سری متغیری که از قبل داخل شل
تعریف شده و وجود داره بهشون میگن
اینوایرمنت وریبل متغیرهای
محیطی
و شما نباید اسم متغیر خودتون رو از این
اسما انتخاب بکنید
این خیلی نکته مهمیه
پس ما یه شل وریبل داریم یه اینوامنت
وریبل داریم شلو ما خودمون تعریف میکنیم
و اینوارمنت از قبل هست داخل شل
و نکته دیگهای نداره مثلاً بزنید اسلش ببخشید میگم اسلش علامت
دالر هوم پیش میاد چیکار میکنه میاد هوم
دایرکتوری اون یوزر رو بهمون میده
خب بریم دستور پرینت ای ام وی چی به ما میده
آها پرینت ای وی هوم میاد اون مقدار داخل
اون متغیر محیطی رو به ما چاپ میکنه.
حالا هرچی که بنویس
آها یه نکته باحاله میگه اگه بخوایم یه وریبل عادی رو ببریم توی اینو ذخیره بکنیم
باید اکسپورت استفاده کنیم دستور اکسپورت
الان من گفتم این متغیری که من تعریف کردم
رو تبدیل کن به یک متغیر محیطی با دستور
اکسپورت
میتونید تعریف و اکسپورت کردن تو یه خط انجام بدید به
این شکل.
خب یه سری نکاتشو رد میکنم چون بعداً بهتره توی کار اینا رو ببینیم.
یعنی الان راجع بهش صحبت نکنیم بهتره
و
بریم درس بعدی.
ما س تا دستور داریم به نام ریدونلی آنست و اکسپورت اکسپورتو که دیدیم برای انتقال
یک متغیر معمولی به متغیر محیطی استفاده
میشه
ریدونلی هم از اسمش مشخصه یک متغیر
ریدونلی میکنه یعنی دیگه نمیشه مقدارشو
عوض کرد آنست هم برای حذف یک وریبل
استفاده میشه یه جایی امکان داره شما دیگه
یک وریبلیو استفاده نخواید بکنید پس بهتره
که حذفش بکنید
پس ریدونی غیر قابل تغییر آنست حذف
اکسپورتم که بهتون گفتم
مثالشو دار میذاریم میگه بعضی مقادیر مثلاً نباید هیچوقت تغییر بکنه مثلاً آدرس
بکآپ یکی از چیزایی که امکان داره هیچوقت
تغییر نکنه پس میاید اون اول اینو ریدونیش
میکنید یه ریدونی قبلش میذارید و دیگه
میگید این مقدار در طول این اسکریپت نباید
تغییر بکنه
اگهم لازم نداشتید یک متغیر یه آنست پشتش
میذارید و دیگه اون متغیر استفاده نمیشه
حذف میشه اکسپورتم که میبره توی اینورمنت
وریبل
یه جایی بخوایم مثلاً متغیر [ __ ] رو تغییرش بدیم خطا میده بهمون در ادامه
چیزایه آیا متق ریدونی رو میشه حذف کرد
اجازه نمیده
نه قابل تغییره نه معمولاً قابل هست وقتی
میگه معمولاً یعنی احتمالا یه راهی هست
ریدونلی رو با اکسپورتم میشه ترکیب کرد یعنی میشه یه محتغیر ریدونلی رو اکسپورتش
کرد مشکلی نداره
خب اما نکته بعدی که میخوام راجع بهش صحبت کنیم اینه که
تا الان ما همیشه متغیررو خودمون تعریف
میکردیم و مقدار دلی میکردیم اما یه
مواقعی پیش میاد که مقدار یک متغیر ما
نیازی که از کاربر دریافت بکنیم مثلاً فکر
کنید آیپی آدرس
پس باید یه روشی باشه که ما بتونیم یک
مقداری رو از کاربرمون دریافت بکنیم برای
این کار از [ __ ] استفاده میشه دستور [ __ ]
مثال نگاه کنید مثلاً یه متغیر خودمون
تعریف کردیم به نام سرور نیم
بعد میخوایم چیکار کنیم
اگه مثلاً بخوایم سرور نیمو عوض بکنیم باید بیایم اسکریپتمونو عوض بکنیم
ولی میتونیم ابتدا بیایم بگیم سرور نیمو
وارد کن یعنی خود کاربر سرور نیم نیمو
وارد بکنه بعد بیا مقدار وارد شده رو داخل
متغیر سرور نیم ذخیره بکنیم
برای این کار باید دستور [ __ ] استفاده کرد
میایم میگیم که سرور نیمو وارد کن
معمولاًهم بچهها قبل از دستور [ __ ] شما
باید بگید که چی رو میخواید اگه نگید که
خب یه ذره عجیبه
میگید که اسمتونو وارد بکنید و داخل نیم
ذخیره میکنید و بعد میتونین در حقیقت
این مقدار رو خروجی نمایش بدیم
بیایم این مثال با هم بزنیم اینجا خب من یه سی دی بکنم
یه دونه اسکریپت درست کنیم اسمشو بذاریم test.s اس اچ
از قبل آخرش یه چیزی هست دی میزنم همه
اینا رو پاک میکنم
با دی
خب میرم رو اینسرت مود میگم که همینو
میزنم
رو اینسترت مردم آره الان اینست مگم اکو کن
مثلاً اینتر
نیم بعد دستور ریدو پشتش میارم میریزم داخل
نیم بعد در نهایت اکو میکنم اون چیزی که
کاربرم وارد کرده رو یه هلو اول مینویسم
از این ست میام بیرون با اسکیپ و دو نقطه دبلیو کی
حالا بریم اینو اجراش کنیم
چون از قبلم دسترسی اگزکیوتو من رو این فایل دادم نیاز نیست الان بدم این کارو
بکنم نگاه کنید میگه اسمو وارد کنید اون
منتظره من یه چیزی وارد کنم مثلاً بزنم
سفیده
میگه هلو سفیده پس شما میتونید با دستور
[ __ ] از کاربرتون یک مقداری رو دریافت
بکنید
ورودی داره اسپیس باشه ه مشکلی نداره هیچ ایرادی نداره
میتونید چند تا اینپوت پشت هم داشته باشید اینم هیچ ایرادی نداره
به نظرم نکته دیگهای نداره بریم درس بعدی نکته بعدی که میگه اینه که شما میتونید
اکو ننویسید قبلش با دش پی یه پیام رو
قبلش بذارید بریم اینجا این کارو بکنیم
میرم رو اینسرت مود
میام اینو اکو رو برمیدارم
تو اینسرت مود نیستیم ما
اوکی الان رفتوی تو فارسی بودیم. خب این اکو رو
من برمیدارم
دستور ریدو قبلش میذارم یه دش پی میذارم
بعد اسم متغیرم مینویسم نیم دیگه این
پایینم نمیخواد اینو میتونیم این کارو
بکنیم
یه دو نقطه اسپیسم بذارم ضرر نداره بیا ذخیره میکنم
دو نگاه کنید تموم میشه
پس میتونید با دش پی دیگه نیاز نباشه اکو بنویسید قبلش
اینجوری کدتون ترتمیزتر و خاناتر و به نظرم جمع و جورترم میشه طبیعتاً
بریم در صورت خب
نکته بعدی که باز خیلی نکته مهمیه اینه که
یه مواقعی بچهها بچهها شما زمانی که
دارید ورودی از کاربر میگیرید نباید
مقدارو نمایش بده. اینجا نگاه کنید من
وقتی اینو میذارم مثلاً میزارم سپیده
اینجا نشون میده من دارم چی تایپ میکنم
ولی خب یه جای شاید امکان داره شما مثلاً
از کاربر دارید اطلاعاتی میگیرید که
اطلاعات حساس و مهمیه و نباید اینجا نمایش
داده بشه مثل مثلاً پسورد مثل مثلاً توکن
سکرت کی اینجور مواقع باید یه دش اس
بذارید حتماً قبل در حقیقت اون چیزی که
کاربر داره وارد میکنه برای چیزی که
دستورتون اینجا نگاه کنید
میان رو اینسرت مود مود اینجا به جای دش
پی میزنم دش اس اینم میذارم اینتور
پسورد مثلاً
یه مشکلی خورده اجازه بدید دش اسه دیگه
احتمالاً چیز اجازه نمیده دیگه نمیشه کامنت گذاشت احتمالاً
بله
کامنت دیگه نمیشه گذاشت
دقیقاً کامنتم دیگه نمیشه گذاشت تو این
حالت
یعنی شما فقط میتونید تایپ کنید اینتررو
بزنید و البته خب نشونمونو داد ولی ایراد
نداره منظور اینکه دیگه کامنت نمیشه گذاشت
و نشونم نمیده که شما چی دارید تایپ
میکنید نکته اصلیش اینه خیلی خب برای این
جلسه کافیه بریم اداش جلسه بعدی صحبت
کنیم.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
متغیرها در اسکریپتها میتوانند با استفاده از دو روش خواندن و اتصال به متن با براکتها استفاده شوند. همچنین، نامهای معنیدار و مناسب برای متغیرها اهمیت دارند.
متغیرها نباید با عدد شروع شوند، نمیتوانند از کاراکتر دش استفاده کنند و باید با حرف یا آندر اسکور شروع شوند.
متغیرهای محیطی میتوانند با استفاده از دستوراتی مانند export، readonly و unset مدیریت شوند.
مقدار از کاربر میتواند با استفاده از دستور __ دریافت شود.
دش پی قبل از ورودی استفاده میشود تا اطلاعات در ورودی نمایش داده نشود.
دش اس برای امنسازی اطلاعات حساس مانند پسورد و توکن استفاده میشود.
آخرین بهروزرسانی محتوای متنی:
🎓 دوره جامع «متخصص مهندسی داده و بیگ دیتا» | 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