برنامه نویسی پوسته لینوکس ( bash ) | گذاره های شرطی ، توابع و دریافت ورودی

گذاره های شرطی با if در برنامه نویسی پوسته لینوکس ( Bash )

گذاره های شرطی دارای اشکال مختلفی هستند. اما پایه‌ای‌ترین دستور به شکل زیر است:

if expression then statement

عبارت statement تنها در صورتی اجرا میشود که expression از نظر منطقی درست باشد. برای مثال Syntax یک گذاره شرطی به صورت زیر است:

if [expression];
then
code if ‘expression’ is true.
fi

یک مثال شرطی ساده با if … then

#! /bin/bash
if [ “foo” = “foo” ]; then
echo expression evaluated as true
fi
یا یک مثال دیگر: در صورتی که فایل source.txt وجود داشت، source.txt را درون destination.txt بریز.
#!/bin/bash
if [[ -e source.txt ]] ; then
cp source.txt destination.txt
fi
مثالی با if … then … else
if [ “quantum espresso” = “quantum espresso” ]; then
       echo expression evaluated as true
else
echo expression evaluated as false
fi

گذاره های شرطی با متغیرها

#!/bin/bash
T1=”foo”
T2=”bar”
if [ “$T1” = “$T2” ]; then
echo expression evaluated as true
else
echo expression evaluated as false
fi

یک مثال هم از حلقه های تو درتو

#!/bin/bash
if [[ -e source1.txt ]] ; then
echo ‘source1.txt exists; copying to destination.txt.’
cp source1.txt destination.txt
else
if [[ -e source2.txt ]] ; then
echo ‘source1.txt does not exist, but source2.txt does.’
echo ‘Copying source2.txt to destination.txt.’
cp source2.txt destination.txt
else
echo ‘Neither source1.txt nor source2.txt exists; exiting.’
exit 1 # terminate the script with a nonzero exit status (failure)
fi
fi

اگر از قالب فوق استفاده میکنید، میتوانید از سوییچ های دیگر هم استفاده کنید. برای مثال سوییچ –e در بالا میگوید آیا فایل souce.txt وجود دارد؟ و سپس برمبنای آن دستورات مختلفی اجرا میشوند.

-d file

گذاره در صورتی درست است که file وجود داشته و یک دایرکتوری باشد.

-f file

گذاره در صورتی است که file وجود داشته و یک فایل معمولی باشد.

string1 = string2

در صورتی درست است که string1 و string2 برابر باشند.

حلقه For

از این حلقه وقتی استفاده میشود که بخواهید بارها و بارها یک کار خسته کننده را تکرار کنید.
فرض کنید در محیط دسکتاپ تان، چند فایل با پسوند .txt دارید و می‌خواهید آن‌ها را با نام .txt.qe ذخیره کنید یا به عبارتی ساده‌تر، تمام این فایلها را Rename کنید.

for file in *.txt ; do
mv “$file” “$file.bak”
done

در این مثال متغیر file نام فایلهایی با پسوند .txt را درون خود ذخیره میکند و در نهایت rename میشود.

#!/bin/bash
for i in $( ls ); do
echo item: $i
done

به نظرتان خروجی کد بالا چیست؟

توابع در برنامه نویسی Bash , Functions

شما به کمک توابع می‌توانید، کدتان را به بخش های کوچکتر تقسیم کنید. هر تابعی یک کارکرد دارد. هر موقع به این کارکرد نیاز داشتید، از آن در هر جای کد با صدا زدن تابع استفاده میکنید.
صدا زدن یک تابع دقیقاً مشابه با صدا زدن یک برنامه دیگر است. چند مثال از توابع در برنامه نویسی bash

یک تابع ساده با bash

#!/bin/bash
function quit {
exit
}
function hello {
echo Hello!
}
hello
quit
echo foo

توابع با پارامتر در bash

#!/bin/bash
function quit {
exit
}
function e {
echo $1
}
e Hello
e World
quit
echo foo

$۱ یک آرگومان است. اولین چیزی را که دریافت کند، به تابع پاس میدهد. شما با این انجام این مثالها میتوانید شمایی کلی از توابع در برنامه نویسی bash  را بدست آورید.

ساختن منو در محیط ترمینال برنامه نویسی پوسته لینوکس Bash

شما میتوانید با کد زیر منوهای مختلفی بسازید:

#!/bin/bash
OPTIONS=”Hello Quit”
select opt in $OPTIONS; do
if [ “$opt” = “Quit” ]; then
echo done
exit
elif [ “$opt” = “Hello” ]; then
echo Hello World
else
clear
echo bad option
fi
done

دریافت ورودی از کاربر با دستور read

#!/bin/bash
echo Please, enter your name
read NAME
echo “Hi $NAME!”