Başlayanlar Kılavuzu BASH - Giriş parametrləri

Başlayanlar Kılavuzunun 2-ci hissəsinə xoş gəlmisiniz BASH seriyası, bu yeni başlayanlar üçün bir başlanğıc yazan yalnız BASH tutorialıdır.

Bu təlimatın oxucuları biliklərimi qurduğumda və ümidlə bitirdikdən sonra, bəzi olduqca ağıllı yazı yaza biləcəkləri kimi, onların biliklərini inkişaf etdirəcəkdir.

Keçən həftə mən sadəcə "Salam Dünya" sözlərini göstərən ilk ssenarinizi yaratdıq . Mətn redaktorları, necə bir terminal pəncərəsinin açılması, skriptlər yerləşdirilməsi, "Hello World" sözlərini necə göstərməsi və quotes ("") kimi qaçış simvollarında bəzi gözəl nöqtələrin necə yerləşdirilməsi nəzərdə tutulur.

Bu həftə giriş parametrlərini əhatə edəcəyəm. Bu cür şeyləri öyrətən digər təlimatçılar var amma bəzi olduqca aşağı səviyyəli məhsullara atlayaraq, çox məlumat verə bilərlər.

Parametr nədir?

Sonuncu təlimatçıdan "Hello World" ssenarisində bütün çox statik idi. Ssenari həqiqətən çox şey etməmişdir.

"Hello World" skriptində necə inkişaf edə bilərik?

Onu idarə edən bir şəxsin salamladığı bir skript nədir? "Hello World" demək əvəzinə "Hello Gary", "Hello Tim" və ya "Hello Dolly" deyəcəklər.

Giriş parametrlərini qəbul etmək qabiliyyəti olmadan "hellogary.sh", "hellotim.sh" və "hellodolly.sh" üç skript yazmaq lazımdır.

Komutumuzu giriş parametrlərini oxumağa icazə verərək hər kəsə salam vermək üçün bir skriptdən istifadə edə bilərik.

Bunu etmək üçün terminal penceresini açın (CTRL + ALT + T) və aşağıdakıları yazaraq skriptlər qovluğuna gedin: ( cd komutu haqqında )

cd scripts

Aşağıdakıları yazaraq greetme.sh adlı yeni bir skript yaradın: ( toxunma əmri haqqında )

toxunma greetme.sh

Aşağıdakıları yazaraq, sevdiyiniz redaktorda skripti açın: ( nano komanda haqqında )

nano greetme.sh

Nano daxilində aşağıdakı mətni daxil edin:

#! / bin / bash echo "salam $ @"

Faylı saxlamaq üçün CTRL və O düymələrinə basın və faylı bağlamaq üçün CTRL və X düymələrini basın.

Ssenari çalıştırmak üçün adınızı dəyişdirən komanda satırına aşağıdakıları daxil edin.

sh greetme.sh

Ssenariyi mənim adımla idarə edərsə, "Hello Gary" sözləri göstərilir.

Birinci satırda faylın bash skripti kimi tanınması üçün istifadə edilən #! / Bin / bash xətti var.

İkinci xətt salam sözünü əks etdirmək üçün yankı bəyanatından istifadə edir, sonra da qəribə bir $ @ qeyd olunur. ( yankı əmri haqqında )

$ @ Skript adı ilə birlikdə daxil edilmiş hər bir parametr göstərmək üçün genişlənir. Belə ki, "sh greetme.sh tim" yazdığınız zaman "hello tim" sözləri göstərilir. "Greetme.sh tim smith" yazdığınız zaman "hello tim smith" sözləri göstərilir.

Greetme.sh skriptinin yalnız adını istifadə edərək salam demək üçün gözəl ola bilər. Heç kəs məni qarşılamarkən "salam gary newell" deyir, olsa da "salam gary" deyə bilərlər.

Ssenariyi yalnız ilk parametrdən istifadə etmək üçün dəyişdirək. Aşağıdakıları yazaraq nanoda greetme.sh skriptini açın:

nano greetme.sh

Ssenariyi aşağıdakı kimi oxumaq üçün dəyişdirin:

#! / bin / bash echo "salam $ 1"

CTRL və O düymələrinə basaraq skript yazıb sonra CTRL və X-ə basın.

Ssenari aşağıda göstərildiyi kimi işləyin (adımı sizinlə əvəz et):

sh greetme.sh gary newell

Ssenari çalıştırdığınızda, sadəcə "salam gary" (və ya ümid edirəm "salam" və adınız nə olursa olsun) deməkdir.

$ Simvolundan sonra 1 əsasən yankı əmrinə deyir, ilk parametrdən istifadə edin. $ 1-ə $ 2-ə əvəz etsəniz, "hello newell" (və ya soyadınız nədirsə) göstərilir.

Yeri gəlmişkən, $ 2-ə $ 3 ilə əvəz edərsən və yalnız 2 parametrlə skriptə qaçdınızsa, çıxış sadəcə "Salam" olardı.

Təsdiq olunmuş parametrlərin sayını göstərmək və idarə etmək mümkündür və sonrakı təlimatlarda qiymətləndirmə məqsədləri üçün parametr sayımından necə istifadə edəcəyini göstərəcəyəm.

Girilmiş parametrlərin sayını göstərmək üçün greetme.sh skriptini (nano greetme.sh) açın və mətni aşağıdakı kimi dəyişin:

#! / bin / bash echo "$ # adları daxil oldunuz" echo "hello $ @"

Nano-dan çıxmaq üçün CTRL və X-ə basın və CTRL və X-ni basın.

2-ci sətirdə # $ daxil edilən parametrlərin sayı göstərilir.

Bu baxımdan hamısı yenilikdir, amma çox faydalı deyil. Sadəcə "salam" ifadəsini göstərən bir skriptə kim ehtiyacı var?

Echo bəyanatlarının gerçək istifadəsi istifadəçi üçün dəqiq və mənalı çıxış təmin etməkdir. Təsəvvür etsəniz, bəzi ciddi problemlərin həlli və fayl / qovluq manipulyasiyasını ehtiva edən bir mürəkkəb bir şey etmək istərdinizsə, istifadəçiyə yolun hər bir addımının nə olduğunu göstərmək faydalı olardı.

Əksinə, giriş parametrləri scriptinizi interaktiv edir. Giriş parametrləri olmadan çox oxşar şeylər edən, lakin bir az fərqli adlar verən onlarla skriptə ehtiyacınız olacaq.

Bütün bunları nəzərə alaraq, digər faydalı giriş parametrləri də var, bilmək yaxşı bir fikirdir və bunları bir kod snippet'inə daxil edəcəyəm.

Greetme.sh scriptinizi açın və bunu aşağıdakı kimi düzəldin:

#! / bin / bash echo "Fayl adı: $ 0" echo "Proses ID: $$" echo "---------------------------- --- "echo" $ # adına daxil oldunuz "echo" hello $ @ "

Fayl və CTRL və X-dən çıxmaq üçün CTRL və O düymələrinə basın.

İndi scripti işləyin (adınızla əvəz olun).

sh greetme.sh

Bu dəfə skript aşağıdakıları göstərir:

Faylın adı: greetme.sh Prosesin ID: 18595 ------------------------------ 2 ad girirdiniz hello gary newell

Skriptin ilk sətrində 0 $ çalışır olduğunuz skriptin adını göstərir. Qeyd edək ki, bu dollar sıfırdır və dollar deyil.

İkinci satırdakı $$, işlədiyiniz scriptin proses idini göstərir. Niyə bu faydalıdır? Ön plandan bir skript çalıştırıyorsanız basitçe CTRL ve C tuşlarına basaraq onu ləğv edə bilərsiniz. Fonksiyanı arka planda qaçırdıysanız və döngəyə başlamışsınızsa və eyni işi yenidən başlasa və ya başlamışsa sisteminizə zərər verə biləcəksinizsə, onu öldürmək.

Arxa fonda çalışan bir skripti öldürmək üçün scriptin proses idinə ehtiyacınız var. Ssenarinin proses idini çıxışının bir hissəsi kimi verməsi yaxşı olardı. ( ps haqqında və əmrləri öldürmək )

Nəhayət bu mövzu ilə bitməmişdən əvvəl çıxdığım yerin harada olduğunu müzakirə etmək istəmişdim. Ssenarinin indiyədək işə saldığı hər zaman ekranda çıxış göstərilir.

Çıxış faylına yazı yazmaq üçün olduqca ümumidir. Bunun üçün skriptinizi aşağıdakı kimi çalıştırın:

sh greetme.sh gary> greetme.log

Yuxarıdakı komanda> sembolü greetme.log adlı bir faylda "hello gary" mətnini verir.

Ssenari ilə skript yazdığınız hər dəfə çıxış faylının məzmununu yazır. Dosyaya əlavə etmək istəsəniz,> ilə >> əvəz et.

Xülasə

İndi ekrana mətn yazmaq və giriş parametrlərini qəbul etmək lazımdır.