Linux-da “Shell script” düzediş tertibini nädip açmaly


Scriptazgy, diňe bir faýlda saklanýan buýruklaryň sanawydyr. Terminalda hemişe birin-birin ýazmak bilen buýruklaryň yzygiderliligini ýerine ýetirmegiň ýerine ulgam ulanyjy olaryň hemmesini (buýruklary) bir faýlda saklap bilýär we buýruklary birnäçe gezek gaýtadan ýerine ýetirmek üçin faýly birnäçe gezek çagyrýar.

Ripazuwy öwrenenimizde ýa-da skriptleri ýazmagyň başlangyç döwründe, adatça birnäçe setir buýruk bilen kiçi ýa-da gysga ýazgylary ýazmak bilen başlaýarys. Adatça, şular ýaly skriptleri olaryň çykyşyna seretmekden we olaryň isleýşimiz ýaly işlemegini üpjün etmekden başga hiç zat etmän düzýäris.

Şeýle-de bolsa, müňlerçe setir buýruklary bilen gaty uzyn we ösen skriptleri ýazyp başlanymyzda, mysal üçin ulgam sazlamalaryny üýtgedýän, torlarda möhüm ätiýaçlyk nusgalaryny ýerine ýetirýän we başga-da köp skriptleri ýazyp başlanymyzda, diňe skriptiň çykyşyna seretmegiň ýokdugyna göz ýetireris. skriptiň içinde kemçilikleri tapmak üçin ýeterlikdir.

Şol sebäpden, Linux seriýasyndaky bu gabyk skriptini düzetmekde, gabyk skriptini düzetmegi nädip açmalydygyny, dürli gabyk skriptlerini düzetmek usullaryny we indiki seriýalarda nädip ulanmalydygyny düşündirmek üçin geçeris.

Scriptazgyny nädip başlamaly

Scriptazgy, beýleki faýllardan #! (She-bang - faýl görnüşini kesgitleýär) we faýlyň ulgamyna habar berýän ýol ady (terjimeçä barýan ýol) bilen tapawutlanýar. görkezilen programma (terjimeçi) tarapyndan düşündiriljek buýruklar ýygyndysydyr.

Aşakda dürli görnüşli skriptlerdäki\birinji setirleriň mysallary:

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

Bellik: Bir setirde içerki gabyk görkezmeleri bolmazdan, diňe bir adaty ulgam buýruklarynyň toplumy bar bolsa, birinji setir ýa-da #! galdyrylyp bilner.

Linux-da gabyk skriptini nädip ýerine ýetirmeli

Gabyk skriptini ulanmagyň adaty sintaksisi:

$ script_name  argument1 ... argumentN

Mümkin bolan başga bir görnüş, skripti aşakdaky ýaly ýerine ýetirjek gabygy anyk görkezmekdir:

$ shell script_name argument1 ... argumentN  

Mysal üçin:

$ /bin/bash script_name argument1 ... argumentN     [For bash scripting]
$ /bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
$ /bin/sh script_name argument1 ... argumentN       [For sh scripting]

Birinji setir hökmünde #! bolmadyk we diňe aşakdaky ýaly esasy ulgam buýruklaryny öz içine alýan skriptler üçin:

#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

Diňe ýerine ýetirip bolýan we aşakdaky ýaly işlediň:

$ chmod +x  script_name
$ ./script_name 

“Shell” skriptini düzetmek tertibini açmagyň usullary

Aşakda gabyk skriptini düzetmegiň esasy wariantlary:

    • -n (noexec üçin gysga ýa-da ýerine ýetiriş ýok) - gabyga ähli buýruklary okamagy tabşyrýar, ýöne ýerine ýetirmeýär. Bu opsiýalar sintaksis barlag tertibini işjeňleşdirýär.
    • -x (xtrace ýa-da ýerine ýetiriş yzy üçin gysga) - gabyga ýerine ýetirilende ähli buýruklary we argumentleri terminalda görkezmegi tabşyrýar. Bu opsiýa gabyk gözlemek tertibine mümkinçilik berýär.

Birinji mehanizm, gabyk skriptiniň birinji setirini aşakdaky ýaly üýtgetmek bilen, bu ähli skriptiň çözülmegine mümkinçilik döreder.

#!/bin/sh option(s)

Aboveokardaky görnüşde, ýokardaky düzediş opsiýalarynyň biri ýa-da kombinasiýasy bolup biler.

Ikinjisi, aşakdaky ýaly düzediş opsiýalary bilen gabygy çagyrmak bilen, bu usul tutuş skriptiň düzedişini açar.

$ shell option(s) script_name argument1 ... argumentN

Mysal üçin:

$ /bin/bash option(s) script_name argument1 ... argumentN   

Üçünji usul, gurnalan buýrugy ulanyp, funksiýa ýaly gabyk skriptiniň berlen bölümini düzeltmekdir. Bu mehanizm möhümdir, sebäbi gabyk skriptiniň islendik segmentinde düzedişleri işjeňleşdirmäge mümkinçilik berýär.

Aşakdaky görnüşde düzülen buýrugy ulanyp, düzediş tertibini açyp bileris, bu ýerde düzediş opsiýalarynyň islendik biri bar.

$ set option 

Düzediş tertibini işjeňleşdirmek üçin ulanyň:

$ set -option

Düzediş tertibini öçürmek üçin ulanyň:

$ set +option

Mundan başga-da, gabyk skriptiniň dürli segmentlerinde birnäçe düzediş usullaryny açan bolsak, hemmesini birbada şeýle öçürip bileris:

$ set -

Shelagny, häzirki wagtda gabyk skriptini düzetmek re withimini açmak bilen. Görşümiz ýaly, tutuş gabyk skriptini ýa-da skriptiň belli bir bölümini düzedip bileris.

Bu tapgyryň indiki iki bölüminde, söz düzümini, sintaksis barlagyny we gabyk yzarlaýyş usullaryny mysallar bilen düşündirmek üçin gabyk skriptini düzetmek opsiýalaryny nädip ulanmalydygyny öwreneris.

Möhümi, bu gollanma barada haýsydyr bir sorag bermegi ýatdan çykarmaň ýa-da aşakdaky teswirler bölüminiň üsti bilen bize jogap bermegi ýatdan çykarmaň. Oňa çenli Tecmint-e birikdiriň.