نیما بازگیر
نیما بازگیر
خواندن ۱ دقیقه·۶ سال پیش

آموزش کامل Bash Shell


قسمت 1.2 – Goodbye World با استفاده از متغیر

با توجه به آموزش قسمت اول یک فایل جدید با نام goodbye.sh و با محتویات زیر ایجاد کرده سپس با دستور chmod +x goodbye.sh مجوزهای اجرای مورد نیاز را به فایل ساخته شده اعمال نموده و آن را با دستور goodbye.sh/. اجرا کنید.

یادآوری (ایجاد فایل و مجوزهای اجرا)
یادآوری (ایجاد فایل و مجوزهای اجرا)

کد اسکریپت:

#!/usr/bin/env bash a_variable="World" printf "Goodbye %s\n" "$a_variable"

دقت داشته باشید که این اسکریپت نیز همانند اسکریپت نوشته شده قسمت اول در خروجی استاندارد مقدار Goodbye World را تولید می کند اما این بار با استفاده از تعریف و مقدار دهی متغیر...

خروجی اسکریپت
خروجی اسکریپت

همانطور که در اسکریپت نوشته شده مشهود است، متغیر a_variable حاوی مقدار World بوده که بدلیل استفاده از متغیر با کمک printf خروجی فرمت بندی شده (و ایمنی) در خروجی استاندارد نمایش دادیم.

نکته: در تصویر بالا از دستور cat برای نمایش محتویات فایل اسکریپت استفاده شده (مطالعه بیشتر)


نحوه گرفتن ورودی از خط فرمان جهت پردازش در اسکریپت:

حال نوبت آن رسیده که مقداری بعنوان ورودی از خط فرمان دریافت کرده و در اسکریپت استفاده (پردازش) نماییم، کد زیر آرگومان 1$ را (که اولین آرگومان خط فرمان می باشد) دریافت نموده و به صورت یک رشته فرمت بندی شده در خروجی به دنبال واژه ,Goodbye نمایش می دهد.

#!/usr/bin/env bash printf "Goodbye, %s\n" "$1"

فایل کد بالا را با نام garg.sh ذخیره نموده و همانند دو مثال قبل مجوزهای اجرایی مورد نیاز را تامین و سپس اجرا نمایید. خروجی و نحوه مقدار دهی در شکل زیر مشهود است.

خروجی اسکریپت
خروجی اسکریپت

نکته: دقت کنید که در کد بالا می بایست 1$ در میان دو علامت نقل قول (دابل کوتیشن) قرار گیرد.

نکته امنیتی: درصورتیکه علاقمند به دانستن اهمیت اعلان متغیرهای رشته ای از طریق دابل کوتیشن در اسکریپت های نوشته شده در Bash هستید به لینک زیر مراجعه نموده و مطالعه بفرمایید.

https://unix.stackexchange.com/questions/171346/security-implications-of-forgetting-to-quote-a-variable-in-bash-posix-shells


موفق و سربلند باشید.

Bash Shelllinuxآموزشاسکریپت نویسیقسمت دوم
علاقمند حوزه های "برنامه نویسی" و "امنیت"
شاید از این پست‌ها خوشتان بیاید