شێڵ سکریپتینگ بەرنامەیەکی کۆمپیوتەره، سەرچاوە کراوەیە و دیزاین کراوە بۆ ئەوەی نووسینی کسریپت و بهکارهێنایانین له لینکوس
کهواته شێل سکریپت Shell Scripting بەرنامەیەکە بۆ نووسینی زنجیرەیەک فرمان بۆ لینوکس. بهکارهێنانی شێل سکریپت، دهتوانین فەرمانەکانی لینوکس تێکەڵ بکهین له یهک سکریپتدا بۆ ئهنجامدانی کاری جۆراوجۆر. واته به شێڵ سکریپت دهتوانین سکریپتێک دروست بکهین پێهاتوو له کۆماندۆکانی لینوکس، ئهوهش بێگومان کارهکانی لێنوکس ئاسان دهکاتهوه، بۆ ئێمه که کاری پڕۆگرامکردن دهکهین له لینوکس کارئاسانی زۆری ئێمه دهکات. نووسینی سکریپتی شێل ئهوانهی کاری بهڕێوبهری سیستهمی لینوکس زۆر گرنگه. کسریپتهکانی شێل به پاشکۆ sh کۆتایی دێن. بۆ نموونه text.sh
ئەم فێرکارییە شێڵ سکریپتینگ یارمەتیدەرە بۆ فێربوونی تێگەیشتنێکی بنەڕەتی لە بەرنامەی سکریپتی شێل له لینوکس/یونیکس. ئەم فێرکاریەی شێڵ سکریپت بۆ ئەو کەسەیه که به شێوازێکی سەرەتایی و پیشەییانەی کە دەیانەوێت فێربن شێڵ سکریپت چییە و چۆن شێل سکریپت بهکاردێنین!
شێڵ زاراوەیەکی یونیکسە بۆ ڕووکارێک لە نێوان بەکارهێنەر و خزمەتگوزاری سیستەمی کارپێکردن. شێڵ ڕووکارێک بۆ بەکارهێنەران دابین دەکات و فرمانەکان وەرئەگرێت کە مرۆڤ دەیخوێنێتەوە بۆ ناو سیستەمەکە و ئەو فرمانانە جێبەجێ دەکات کە دەتوانن له سکریپتی شێلدا نووسرابن.
ئهگهر سهیری لینکوس بکهین، بۆ ئهوهی بزانین له چیی ئاستێکی لینکوس شێل ههیه بۆ وهرگرتنی فهرمانهکان.
بێگومان بیرمان نهچێ، نووسینی کۆماندۆکان له تێرمینالی لینکوس دهنووسرێن.
لهم وێنهیی خوارهوهدا دهبینین، که بناغهی سهرهکی ڕهقهکالایه، دواتر نهرمهکالای که ناوکه، بهلام له ئاستێکی زۆر سهرهوه شێڵ دێت، شێل دهکهوێته ئاستی بهرزی بهکارهێنهران. واته بهکارهێنهران دهتوانن له ڕێگهی بهکارهێنانی تێرمینال و دروستکردنی سکریپتی شێل دهتوانن کارهکان له لینوکس بکهن.
لێره گرنگه بۆ ئهوانهی ئهز دهکهن زیاتر دهربارهی ناوک بزانن، ناوکی لینوکس (Linux Kernel) بهشی سهرهکی سیستهمی کارپێکردنهوه له لینکوس، هۆکاری سهرهکی پهیوهندی ڕهقهکالا و نهرمهکالایه. ناوکی لینکوس له بهشی ناوهوهی سیستهمی کارپێکردنه. دواتر له بهشی دهرهوه شێل دێت.
دروسکردنی سکریپتی شێل
dil@diy:~$ cd Desktop/ dil@diy:~/Desktop/shell$ mkdir shell dil@diy:~/Desktop/ cd shell touch text.sh dil@diy:~/Desktop/shell$ nano text.sh #!/bin/sh # Koment kirdin echo "kurdit.net"
|
touch kurd.sh
nano kurd.sh
لێره نانۆ nano بهکاردێنین بۆ نووسینی سکریپتی شێل
سهرنج بدهن کاتێک نانۆ nano بهکاردێنین بۆ کۆتایی و پاشهکهوتکردن ctrl داگیراوه و کرتهش له سهر x دهکهین لهسهر تهختهکیل. دواتر پرسیارمان لێدهکات بۆ پاشهکهوت y بهکار بینین.
ههروهها بۆ ئهوهی بزانین چۆن له تێرمینال سکریپتهکه کار دهکات بهو شێوهیه باش لهسهرهتاوه دهنووسین و دواتر ناوی سکریپتهکه.
bash text.sh
#!/bin/sh # Koment kirdin echo "kurdit.net" |
dil@diy:~/Desktop/shell$ bash text.sh kurdit.net |
تهنها بلێم، باش زۆر باشه!
وابزانم هیچ کهس نییه ئهزی له باش نهبێ!!!
سکریپتی شێل، پهڕگهی text.sh
#!/bin/sh # Koment kirdin echo "kurdit.net" |
dil@diy:~/Desktop/shell$ bash test.sh kurdit.net |
وهک له سکریپتهکهی سهره دهبینین، یهکهمه دێڕ نووسراوه (bin/sh/) ئهوهش بۆ ئهوهی ئهوه سکریپتی شێله و شێل بهکاربهێندرێ. به هێماکانی (!#), به سیستهمی کارپێکردن دهلێن چیی بهکاربێنین بۆ ئهو سکریپته، دواتر bin/sh/ دهنووسین، بهو شێوهیه سیستهمی کارپێکردن دهزانێ که ئێمه سکریپتێکی شێل ههیه و چیی پێویسته بهکاری بێنێ!
له دێڕی دووهم نیشان دهدرێ جۆن کۆمێنت بنووسین، ئهوهش هێمانی (#) دهتوانین کۆدهکان کۆمێنت بکهین. به کۆمێنت کرد، شێل ئهزانی دێڕهکه کۆمێنت کراوه و پێویست ناکات بهکاری بێنێ. بهلام له دێڕی دواتر، دێڕێ سێ. فهرمانی echo بهکارهێنیراوه. ئهوهش بۆ چاپکردنی نووسینێک له تێرمینال بهکار دێت.
#!/bin/sh # Koment kirdin |
dil@diy:~/Desktop/shell$ bash test.sh WELCOME TO KURDIT.NET |
وهک دهبینین دروستکردنی گۆڕاو زۆر ئاسانه. گۆڕاوێک دروست دهکهین یهکسانی دهکهین به شتێک! دواتر له کاتی بهکارهێنانی گۆڕاو، هێمای دۆلار بهکار دێنین وهک بموونهی سهرهوه.
گۆڕاوی MALPPER دروستکراوه، کاتێک گۆڕاوهکه بهکار دێنین هێمای دۆلار بهو شێوهیه لهگهڵ گۆڕاوهکه دهنووسین. (MALPPER$)
نموونهیهکی تری گۆڕاو!
#!/bin/sh |
dil@diy:~/Desktop/shell$ bash test.sh |
نووسینی مرج زۆر گرنگه، مهرجهکان دهبنه هۆکاری ئهوهی بۆ ههر ئهگهرێک، له کاتی ههر ئهگهر شتێکی جیاواز بکهین، بۆ نموونه ئهگهر گۆڕاوێک یهکسان بوو به شتێک، شتێ ڕووبدات، ئهگهر نا شتێکی تر ڕووبدات. به شێوهیه مهرج دهنووسین بۆ سکریپتت شێل. if [ $num1 == $num2 ]; then
بیرمان نهچێ [ ] دهنووسین مهرجهکه لهوێدا دهنووسین. ههروهها مهرجهکانی if به fi کۆتایی دێن.
هێماکانی بهکارهێنانی مهرجهکان وهک ئهم شێوهیهی خوارهوهیه.
> | -lt | بچووکتر له |
> | -gt | گهورهتر له |
<= | -le | بچووکتر یان یهکسان |
>= | -ge | گهورهتر یان یهکسان |
== | -eq | یهکسان |
!= | -ne | یهکسان نییه |
لهم نموونهیهدا ئێمه دوو گۆڕاومان ههیه. له خوارهوه وهک مهرج ئهو گۆڕاوانه بهکاردێنین بۆ ئهگهرهکان.
#!/bin/bash if [ $num1 == $num2 ]; then
|
dil@diy:~/Desktop/shell$ bash test.sh Nexêr, yekisan nîn |
نموونهیهکی تری لووپ ئهم جارهیهک بهشێوهیهکی تر درووستی دهکهین. لێرهشدا گۆڕاوێک دروست دهکهین، گۆڕاوی i یهکسان دهکهین به ژماره 1، که دهبێته سهرهتای گهڕی یهکهم، گۆڕاوهکه بۆ ههر گهڕێک ژمارهیهک زیاد دهکات. واته له گهڕێ یهکهمدا گۆراوی i یهکسانه به ژمارهی 1، بهڵام له گهڕی پێنجهم گۆڕاوی i یهکسان دهبێ به ژماره 5.
#!/bin/sh |
dil@diy:~/Desktop/shell$ bash test.sh |
وهک له نموونهی سهرهوه نیشاندراوه، ههموو گهڕێکدا گۆڕاوی i نیشان دهدرێ، به فهرمانی echo له تێرمینال دهنووسرێ. ههروهها لهم جۆرهی لووپ مهرجمێک ههیه، ئهو مهرجهش دهڵێ که کۆدهکان دووباره ببنهوه ههتا وهختێک گۆڕاوی i یهکسان دهبێ یان دهبیته ژمارهیهکی کهمتر له 10. کهواته ئهو سکریپته بهردهوام دهبێ ههتا مهرجهکه دێته دیت! لیرهدا گۆڕاوی i وهک مهرج بهکار هاتووه، i<=10، وهک باسمان کرد، بۆ ههر گهڕێک گۆڕاوی i زیاد دهکات، ئهوهش به i++, واته ههموو گهڕێ گۆڕاوی i به ژمارهی یهک زیاد بکرێ!
لێرهدا مهبهست له دووباره بوونهوهیه، واته بیهێنه بهرچاوی خۆت گهڕێک کاری کۆد، دهکرێ دووباره بوونهوهی کۆدێک یان فرمانێکی لینوکس بێت!
دروستکردنی لووپ له به سکریپتی شێل. دروستکردنی لووپی جۆری For وهک نموونهی خوارهوه. ههر گهڕێک، خولێک کاری ئهو سکریپته دهبیته هۆی نیشانی گۆڕاوی i، خولی کۆدهکان بهردهوام دهبی ههتا کۆتایی ژمارهکان. لێره ژمارهی شهش نووسراوه. بیرمان نهچێ له خولی یهکهم گۆڕاوی i یهکسان دهبێ به ژماره 1. ههروهها له خولی پێنجهم، گۆڕاوی i یهکسان دهبێ به ژمارهی 6.
#!/bin/sh for i in 1 2 3 4 6 do echo "Jimare: $i" done |
dil@diy:~/Desktop/shell$ bash test.sh |
وهک له نموونهوهی سهرهوه دهبینین، پێش ههموو شتێک دهنووسین for دواتر گۆڕاوی i دروست دهکهین به لێدانی خول له نێو in ژمارهکاندا. دواتره به do ئاماژهی دهکهین که چیی بکرێ، له نموونهی سهرهوه
کۆماندۆ، فهرمانی echo بهکار دێنین بۆ نووسینی گۆڕاوهکه له تێرمینال. بهو شێوهیهک له ههر گهڕێک گۆڕاوی i یهکسان دهکرێ به ژمارهیهک و دواتر دهنووسرێته دهرهوه.
یهک ڕیزهک دهتوانرێ چهندین ئهندامی ههبێ، دهکرێ ئهندامهکان ژماره بن، ناوی مرۆڤ، ناوی باڵندهکان، ناوی جۆری ئۆتۆمبێلهکان بن. ڕێزهکێک بهو شێوهیهیی خوارهوه دروست دهکهین.
دروستکردنی ڕیزهک له سکریپتی شێل بهو شێوهیه دهبێت!
rizek=(Sewa Livia Sirwa Karwan) |
لێرهدا گرنگه، یهکهم ئهندام ههمیشه دهبێت ژمارهی 0ی ڕیزهک. ههمیشه ڕیزهک له ژمارهی سفرهوه دهستپێدهکات. واته ژمارهی 0ی ئهم ڕیزهکه لێرهدا سێوه Sewa یه.
ههروهها دروستکردنی ڕێزهک بهکارهێنانی له سکریپتی شێل. لێرهدا وهک نموونه ڕیزهکێک دروست دهکهین و پاشان ههموو ئهندامهکانی ڕیزهک به لووپ و فهرمانی echo دهنووسین.
#!/bin/sh for i in ${rizek[@]} echo ${rizek[0]} |
dil@diy:~/Desktop/shell$ bash test.sh |
بهو شێوهیهک وهک له سهرهوه
ئهرک له پڕۆگرامکردن زۆر گرنگه، ئێمه ئهرک دروست دهکهین چوونکه ئهرکهکان دهکرێ چهندین جار ههر کاتێک پێویستیمان پێی بوو بهکاریان بێنین. بۆ نموونه ئێمه دهتوانین ئهرکێک دروستبکهین که خێرایی ئۆتۆمبێلهکان ئیساب بکات! بۆ ئهوهش ئێمه دهزانین خێرایی ئۆتۆمبێل یهکسانه به درێژی ڕیگا دابهشی کات,ئهو کاتهی ئۆتۆمبێلهکان پیویستیان پێیهتی بۆ بڕینی ڕیگا! کهواته چۆن بتوانین ئهرک دروست بکهین ئهو ئیسابه بۆ ئێمه بکات!
نموونهی ئهرکێک
#!/bin/sh a=210 # 210 km
|
dil@diy:~/Desktop/shell$ bash test.sh 105 km/h |
ئهو ئهرکهی سهرهوه زۆر به سادهیی ئیسابی خێرایی ئۆتۆمبێلهکانمان بۆ دهکات. وهک دهبینین دروستکردنی ئهرک به function دهنووسرێ و دواتر ناوی ئهرک دهنووسرێ. له نموونهی سهرهوه ناوی ئهرک بریتیه له xeray ههروهها بهو شێوهیه دهنووسرێ () function xeray
لێرهدا ئێمه ئهو ئهرکه دوو پارامهتر، ئهرگۆمێنتی ههیه، ئهرگۆمێنتی یهکهم دابهشی ئهرگۆمێنی دووهم دهکرێ. ئهوهش به مانانی درێژی ڕێگا به کیلۆمهتر دابهشی کاتی لێخوڕینی ڕیگاکه به کاتژمێر. له نموونهی سهروهوه، ئۆتۆمبێلێک دوو کاتژمیری پیویست بووه بۆ ئهوه ڕیگایهکی 210 کیلۆمهتری ببڕێ!
ئهو ئهرکهی سهروه خێرایی ڕیگاکهمان بۆ ئیساب دهکات، دهبیته 105 کم/ له کاتژمێرێکدا!
لێرهدا قازانجی دروستکردنی ئهرک ڕوون دهبێتهوه، ئێمه پێویست ناکات ههموو جار کۆدهکان بنووسینهوه بۆ زانینی خێرای، ههر کاتێک ویستمان خێرایی ئۆتۆمبێلهکان بزانین، ئهو ئهرکه دووباره بهکار دێنینهوه.
نموونهی دووباره بهکارهێنانهوهی ئهرک!
#!/bin/sh a=210 # 210 km xeray $a $b
|
dil@diy:~/Desktop/shell$ bash test.sh 105 km/h |
وهک له نموونهی سهرهوه دهرکهتووته چۆن دهبتوانین به ئاسای ئهرکهکان چهندین باره بهکاربێنهوه.
له خواروه پڕۆگرامێکی ساده ئاماده دهکهم، به هیوای ئهوهی جێگای سوود بێ بۆ تێگهێشتن له دروستکردنی سکریپتی شێل. شتێکی تازه لهم پڕۆگرامهی خوارهوهیه، ئهویه که فهرمانی read بهکاردههێندرێ لهگهل گۆڕاوێک بۆ ئهوهی بهکارهێنهر، بۆ نموونه درێژی ڕێگا و کاتی بڕینی ڕێگاکه بنووسێ. واته له نموونهی سهروه ئێمه خۆمان گۆڕاوهکانمان بۆ ئهرک نووسیبو، یهکسان بوون بۆ ژمارهیهکی پێشوهخت نووسراو. لێرهدا ئهوه ناکهین، بهکارهێنهر دهتوانێ ههموو جارێک ئهو سکریپته بهکاردێنێ ژمارهیهکی نوێ بۆ گۆڕاوهکان بنووسێ. ئهوهش تێکی زۆر باشه، زۆر به ئاسای پڕۆگرامێکی بچووکمان ههیه که خێرایی ئۆتۆمێبلهکانمان دهزانێ.
#!/bin/sh echo "Katî birnî rêga binûse" xeray $a $b |
dil@diy:~/Desktop/shell$ bash test.sh Dirêjî rêga binûse |
ئهوه کورتهیهک بوو دهربارهی چۆنێتی نووسینی سکریپتی شێل! هیوادارم جێگای سودی ههموولایهک بێت!
1/ درباری کورد ئایتی
2/ ئندامتی
3/ مرجکانی ئندامتی
4/ پرۆژکانمان
کورد ئایتی ©