30 bash -käsikirjoitusta Haastattelukysymykset ja vastaukset

30 Bash Script Interview Questions



Bash -komentosarja on erittäin hyödyllinen ja tehokas ohjelmointikieli, jota käytetään pääasiassa manuaalisten tehtävien automatisointiin. Työnhakijan, joka haluaa olla automaation testaaja tai bash -ohjelmoija, on kohdattava haastattelussa joitain yleisiä kysymyksiä. Linuxissa on erityyppisiä komentosarjoja. Yksi suosituimmista ja eniten käytetyistä komentosarjoista on Bourne Again Shell tai Bash. Tässä artikkelissa kuvataan 30 tärkeää haastattelukysymystä ja vastausta bash -komentosarjakielestä valmistautuakseen työhön.

#01. Mikä on bash -käsikirjoitus?

Bash -skripti on shell -ohjelmointikieli. Yleensä suoritamme monenlaisia ​​komentotyyppejä päätelaitteesta kirjoittamalla jokainen komento erikseen, mikä vaatii aikaa ja vaivaa. Jos meidän on suoritettava samat komennot uudelleen, meidän on suoritettava kaikki komennot päätelaitteesta uudelleen. Mutta käyttämällä bash -komentosarjaa, voimme tallentaa monia shell -komentoja samaan bash -tiedostoon ja suorittaa tiedoston milloin tahansa yhdellä komennolla. Monet järjestelmänhallintaan liittyvät tehtävät, ohjelmien asennus, levyn varmuuskopiointi, lokien arviointi jne. Voidaan tehdä käyttämällä oikeaa bash -komentosarjaa.







#02. Mitä hyötyä bash -skriptien käytöstä on?

Bash -skriptillä on monia etuja, jotka on kuvattu alla:



  • Sitä on helppo käyttää ja oppia.
  • Monet manuaaliset tehtävät, jotka on suoritettava usein, voidaan suorittaa automaattisesti kirjoittamalla bash -skripti.
  • Useiden kuorikomentojen sarja voidaan suorittaa yhdellä komennolla.
  • Yhdessä Linux -käyttöjärjestelmässä kirjoitettu Bash -skripti voidaan helposti suorittaa toisessa Linux -käyttöjärjestelmässä. Se on siis kannettava.
  • Virheenkorjaus bashissa on helpompaa kuin muut ohjelmointikielet.
  • Komentorivin syntaksi ja päätelaitteessa käytettävät komennot ovat samanlaisia ​​kuin bash-skriptissä käytetyt komennot ja syntaksi.
  • Bash -skriptiä voidaan käyttää linkittämiseen muihin komentotiedostoihin.

#03. Mainitse bash -skriptien haitat

Jotkut bash -komentosarjan haitat on mainittu alla:



  • Se toimii hitaammin kuin muut kielet.
  • Virheellinen komentosarja voi vahingoittaa koko prosessia ja aiheuttaa monimutkaisen virheen.
  • Se ei sovellu suuren ja monimutkaisen sovelluksen kehittämiseen.
  • Se sisältää vähemmän tietorakennetta verrattuna muihin standardiohjelmointikieliin.

#04. Millaisia ​​muuttujia käytetään bashissa?

Bash -skriptissä voidaan käyttää kahdenlaisia ​​muuttujia. Nämä ovat:

Järjestelmämuuttujat
Linux-käyttöjärjestelmän ennalta määrittämiä ja ylläpitämiä muuttujia kutsutaan järjestelmämuuttujiksi. Tämän tyyppisiä muuttujia käytetään aina isoilla kirjaimilla. Näiden muuttujien oletusarvoja voidaan muuttaa vaatimusten mukaan.

`set`,` env` ja ` printenv `komentoja voidaan käyttää järjestelmämuuttujien luettelon tulostamiseen.

Esimerkki:





#!/bin/bash
# Tulostusjärjestelmämuuttujat

#Print Bash -kuoren nimi
heitti pois $ BASH

# Print Bash shell -versio
heitti pois $ BASH_VERSION

# Tulosta kotihakemiston nimi
heitti pois $ HOME

Käyttäjän määrittämä muuttuja

Käyttäjien luomia ja ylläpitämiä muuttujia kutsutaan käyttäjän määrittämiksi muuttujiksi. Niitä kutsutaan myös paikallisiksi muuttujiksi. Tämäntyyppiset muuttujat voidaan ilmoittaa käyttämällä pieniä tai isoja kirjaimia tai sekä isoja että pieniä kirjaimia. Mutta on parempi välttää käyttämästä isoja kirjaimia muuttujien erottamiseksi järjestelmämuuttujista.
Esimerkki:

#!/bin/bash

yhdellä=100
heitti pois $ numero

#05. Kuinka julistaa ja poistaa muuttujia bashissa?

Muuttuja voidaan ilmoittaa bash -muodossa tietotyypin mukaan tai ilman tietotyyppiä. Jos jokin bash -muuttuja ilmoitetaan ilman julistaa komentoa, muuttujaa käsitellään merkkijonona. Bash -muuttuja ilmoitetaan -merkillä julistaa komento määrittää muuttujan tietotyyppi ajan ilmoituksessa.



- r , -i, -a, -A, -l, -u, -t ja - X vaihtoehtoja voidaan käyttää julistaa komento ilmoittaa muuttuja, jolla on erilaisia ​​tietotyyppejä.

Esimerkki:

#!/bin/bash

#Declare -muuttuja ilman tyyppiä
yhdellä=10

#Arvot yhdistetään, mutta niitä ei lisätä
tulos=$ numero+kaksikymmentä
heitti pois $ tulos

#Declare -muuttuja kokonaislukutyypillä
julistaa -i yhdellä=10

#Arvot lisätään
julistaa -i tulos= numero+kaksikymmentä
heitti pois $ tulos

asetettu -komentoa käytetään poistamaan kaikki bash -muuttujat. Muuttuja ei ole käytettävissä tai määrittelemätön käytön jälkeen asetettu komento.

Esimerkki:

#!/bin/bash

s='Linux -vihje'
heitti pois $ str
asetettu $ str
heitti pois $ str

#06. Kuinka lisätä kommentteja bash -skriptiin?

Yksirivisiä ja monirivisiä kommentteja voidaan käyttää bash-skriptissä. ' # '-Merkkiä käytetään yksirivisessä kommentissa. ''<<’ symboli, jossa on erotin ja ':' yhdellä (’) käytetään monirivisen kommentin lisäämiseen.

Esimerkki:

#!/bin/bash
#Tulosta teksti [Yksirivinen kommentti]
heitti pois 'Bash -ohjelmointi'
< Laske summa
Kahdesta numerosta [monirivinen kommentti]
lisää kommentti

yhdellä=25+35
heitti pois $ numero
:''
Yhdistä kaksi
Merkkijonotiedot [monirivinen kommentti]
''

Jousisoitin='Hei'
heitti pois $ merkkijono'Maailma'

#07. Kuinka voit yhdistää merkkijonoja bash -komentosarjassa?

Jonoarvot voidaan yhdistää bashissa eri tavoin. Normaalisti merkkijonoarvot yhdistetään sijoittamalla ne yhteen, mutta bashissa on muitakin tapoja yhdistää merkkijonotiedot.

Esimerkki:

#!/bin/bash
#Alusta muuttujat
str1='PHP'
str2='Lyödä'
str3='Perl'

# Tulosta merkkijono yhdessä välilyönnin kanssa
heitti pois $ str1 $ str2 $ str3

#Yhdistä kaikki muuttujat ja tallenna ne toiseen muuttujaan
s=''$ str1,$ str2ja$ str3''

#Yhdistä muut merkkijonotiedot merkkijonon nykyiseen arvoon
str + ='ovat skriptikieliä'

#Tulosta merkkijono
heitti pois $ str

#08. Mitä komentoja käytetään tulostuksen tulostamiseen bash -muodossa?

'kaiku' ja 'printf' komentoja voidaan käyttää tulostuksen tulostamiseen bash -muodossa. `kaiku `-komentoa käytetään tulostamaan yksinkertainen tuloste ja 'printf' -komentoa käytetään muotoillun tuloksen tulostamiseen.

Esimerkki:

#!/bin/bash

#Tulosta teksti
heitti pois 'Tervetuloa LinuxHintiin'
sivusto='linuxhint.com'
#Tulosta muotoiltu teksti
printf '%s on suosittu blogisivusto n'' $ -sivusto

#09. Kuinka ottaa syöttö päätelaitteesta bashissa?

'lukea' komentoa käytetään bash -komentosarjassa ottamaan vastaan ​​tuloa päätelaitteelta.

Esimerkki:

#!/bin/bash
#Tulosta viesti
heitti pois 'Kirjoita nimesi'
#Syötä käyttäjän tiedot
lukeanimi
# Tulosta arvon $ name arvo toisella merkkijonolla
heitti pois 'Nimesi on$ nimi''

#10. Kuinka käyttää komentoriviargumentteja bashissa?

Komentorivin argumentit lukevat $ 1, $ 2, $ 3… $ n muuttujia. Komentorivin argumenttiarvot annetaan päätelaitteessa suoritettaessa bash-komentosarja. $ 1 käytetään ensimmäisen väitteen lukemiseen, 2 dollaria käytetään toisen argumentin lukemiseen ja niin edelleen.

Esimerkki:

#!/bin/bash
#Tarkista, onko argumentteja annettu vai ei
jos [[ $ # -ekv 0 ]];sitten
heitti pois 'Ei ole esitetty väitteitä.'
poistua 0
olla
#Tallenna ensimmäinen argumentin arvo
väri=$ 1
# Tulosta argumentti toisella merkkijonolla
printf 'Lempivärisi on %s n'' $ väriä

#11. Onko bash heikosti kirjoitettu kieli? Miksi?

Kyllä, bashia pidetään heikosti tai löyhästi kirjoitettuna kielenä, koska sen ei tarvitse ilmoittaa tietotyyppiä muuttujan ilmoituksen yhteydessä. Kaikkia bash -muuttujia käsitellään oletuksena merkkijonona ja muuttujan tyyppi asetetaan nykyisen arvon perusteella. Bash -muuttujat, joissa on tietotyyppejä, voidaan määrittää käyttämällä julistaa komento tietyllä vaihtoehdolla. Mutta tietotyyppien määrittelymahdollisuudet ovat rajalliset eivätkä tue kaikkia tietotyyppejä. Esimerkiksi, kellua tietotyyppiä ei voi ilmoittaa käyttämällä julistaa komento.

Esimerkki:

#!/bin/bash

#$ MyVar -tyyppi on oletuksena merkkijono
myVar=29

# Tulosta muuttuja
heitti pois $ myVar

# Ilmoita kokonaislukumuuttuja $ number arvolla 67
julistaa -i määrä=67

#Tulosta muuttuja
heitti pois $ numero

# Määritä merkkijonotiedot numeeriseen muuttujaan. Seuraava rivi luo
# syntaksivirhe ja $ -numeron arvo ei muutu
määrä='Pidän bashista'
heitti pois $ numero

#12. Kuinka lukea toinen sana tai sarake tiedoston jokaiselta riviltä?

Tiedoston toinen sana tai sarake voidaan lukea bash -skriptissä käyttämällä erilaisia ​​bash -komentoja helposti, kuten `awk`,` sed` jne. `awk` näkyy seuraavassa esimerkissä.
Esimerkki: Oletetaan, että kurssi.txt -tiedosto sisältää seuraavan sisällön ja olemme tulostaneet vain toisen sanan tämän tiedoston jokaisesta rivistä.

CSE201 Java -ohjelmointi
CSE303 -tietorakenne
CSE408 Unix -ohjelmointi#!/bin/bash
# Seuraava skripti tulostaa jokaisen rivin toisen sanan course.txt -tiedostosta.
# cat -komennon tulos siirtyy awk -komentoon, joka lukee toisen sanan
jokaisen rivin #.
heitti pois ``kissacourse.txt| awk '{print $ 2}'``

#13. Kuinka julistaa ja käyttää matriisimuuttujaa bashissa?

Sekä numeerisia että assosiatiivisia matriiseja tukee bash -skripti. Matriisimuuttuja voidaan ilmoittaa deklarointikomennolla ja ilman sitä. -kohteeseen -vaihtoehtoa käytetään deklaraatiokomennolla määrittämään numeerinen taulukko ja -TO -vaihtoehtoa käytetään deklaraatiolausekkeen kanssa assosiatiivisen taulukon määrittämiseen bashissa. Ilman deklarointikomentoa numeerinen taulukko voidaan määrittää vain bash -muodossa.

Esimerkki:

#!/bin/bash

# Ilmoita yksinkertainen numeerinen taulukko
arr1=(CodeIgniter Laravel ReactJS)

# Tulosta $ arr1 ensimmäisen elementin arvo
heitti pois $ {arr1 [0] {

# Ilmoita numeerinen taulukko julista -komennolla
julistaa -kohteeseen arr2=(HTML CSS JavaScript)

# Tulosta toisen elementin arvo $ arr2
heitti pois $ {arr2 [1]}

# Ilmoita assosiatiivinen taulukko käyttämällä deklaraatiolauseketta
julistaa -TO arr3=( [puitteet]= Laravel[CMS]= Wordpress[Kirjasto]= JQuery)

# Tulosta $ arr3 kolmannen elementin arvo
heitti pois $ {arr3 [kirjasto]}

Kaikkiin matriisin elementteihin pääsee käsiksi käyttämällä mitä tahansa silmukkaa tai '*' -symbolia taulukkoindeksinä.

#14. Miten ehdollisia lausekkeita voidaan käyttää bashissa?

Yleisin ehdollinen lauseke useimmissa ohjelmointikielissä on if-elseif-else lausunto. Syntaksi jos-muut jos muut lausuma bashissa on hieman erilainen kuin muut ohjelmointikielet. 'Jos' lausuma voidaan julistaa kahdella tavalla bash -skriptissä ja kaikentyyppisissä 'jos' lohko on suljettava 'olla' . 'jos' lause voidaan määrittää kolmansilla tai ensimmäisillä hakasulkeilla, kuten muillakin ohjelmointikielillä.

Syntaksi:
TO.

jos [kunto];
sitten
lausuntoja
olla

B.

jos [kunto];sitten
lausuntoja1
muu
lausunto2
olla

C.

jos [kunto];sitten
lausunto1
elif[kunto];sitten
lausunto2
….
muu
lausunto n
olla

Esimerkki:

#!/bin/bash

# Määritä arvo $ n: lle
n=30
# Tarkista, että $ n on yli 100 tai ei
jos [ $ n -gt 100 ];sitten
heitti pois ''$ non alle 100 '
# Tarkista, että $ n id on yli 50 tai ei
elif [ $ n -gt viisikymmentä ];sitten
heitti pois ''$ non alle 50 '
muu
heitti pois ''$ non alle 50 '
olla

#15. Kuinka vertailla bash -arvoja?

Bashissa voidaan vertailla arvoja kuuden tyyppisiä vertailuoperaattoreita. Näitä operaattoreita voidaan käyttää bashissa kahdella tavalla tietotyypin mukaan. Nämä on mainittu alla.

Merkkijonojen vertailu Kokonaislukujen vertailu Kuvaus
== -ekv Sitä käytetään tasa -arvon tarkistamiseen
! = -syntynyt Sitä käytetään epätasa -arvon tarkistamiseen
< -Lt Sitä käytetään tarkistamaan, että ensimmäinen arvo on pienempi kuin toinen arvo vai ei
> -gt Sitä käytetään tarkistamaan, että ensimmäinen arvo on suurempi kuin toinen arvo vai ei
<= -he Sitä käytetään tarkistamaan, että ensimmäinen arvo on pienempi tai yhtä suuri kuin toinen arvo vai ei
> = -antaa Sitä käytetään tarkistamaan, että ensimmäinen arvo on suurempi tai yhtä suuri kuin toinen arvo vai ei

Esimerkki:

#!/bin/bash
# Alusta $ n
n=130
tai='jopa'
# Tarkista, että $ n on suurempi tai yhtä suuri kuin 100 tai ei käytä ”–ge”.
jos [ $ n -antaa 100 ];sitten
heitti pois ''$ non suurempi tai yhtä suuri kuin 100 '
muu
heitti pois ''$ non alle 100 '
olla
# Tarkista, että $ n on parillinen tai pariton käyttämällä '==' -operaattoria
jos (( $ o=='jopa' ));sitten
heitti pois 'Luku on parillinen'
muu
heitti pois 'Luku on pariton'
olla

#16. Mitä ehdollista lausetta voidaan käyttää vaihtoehtona if-elseif-else -lausekkeille bashissa?

'Tapaus' lausuntoa voidaan käyttää vaihtoehtona tp jos-muut jos-jos lausunto. Syntaksi 'Tapaus' lause bash -skripteissä on erilainen kuin kytkinkotelo lausunto muista ohjelmointikielistä. 'Tapaus' lohko on suljettu 'Esac' lausunto bashissa. Ei ' tauko 'Lausuntoa käytetään sisällä' tapaus ’Lohko lopettaa lohkosta.

Syntaksi:

tapaus sisään
Ottelumalli1)komentoja;;
Ottelumalli2)komentoja;;
……
Tuloskuvio n)komentoja;;
esac

Esimerkki:

#!/bin/bash
#Alusta muuttujan $ lippu
lippu=101
# Vertaa $ -lipun arvoa 23, 101 ja 503
tapaus $ lippu sisään
2. 3)
# Tulosta viesti, jos arvo on 23
heitti pois 'Sinulla on ensimmäinen palkinto';;
101)
# Tulosta viesti, jos arvo on 101
heitti pois 'Sait toisen palkinnon';;
503)
# Tulosta viesti, jos arvo on 503
heitti pois 'Sait kolmannen palkinnon';;
*)
# Tulosta viesti, jos arvo ei vastaa 23, 101 ja 503
heitti pois 'Anteeksi, yritä seuraavan kerran'
poistua 0;;
esac

#17. Mitä erilaisia ​​silmukoita voidaan käyttää bashissa?

Bash -skripti tukee kolmen tyyppisiä silmukoita. Nämä ovat samalla, varten ja siihen asti kun silmukat. Silmukat bashissa tarkistavat tilan silmukan alussa. Sillä aikaa silmukka toimii, kunnes ehto on totta ja siihen asti kun silmukka toimii, kunnes ehto on väärä. Käytössä on kaksi tapaa varten silmukka. Yksi on yleinen varten silmukka, joka sisältää kolme osaa ja toinen on sisään-sisään silmukka. Näiden kolmen silmukan käyttö on esitetty seuraavassa esimerkissä.

Esimerkki:

#!/bin/bash
# Alusta $ n
n=5
# Laske neliö 5-1 käyttämällä while-silmukkaa
sillä aikaa [ $ n -gt 0 ]
tehdä
neliömetriä= $((n*n))
heitti pois 'Neliö$ nOn$ neliömetriä''
((n--))
tehty

# Laske neliö 5-1 käyttämällä silmukkaa
varten (( i=5; i>0; minä--))
tehdä
neliömetriä= $((i*i))
heitti pois 'Neliö$ iOn$ neliömetriä''
tehty

# Alusta $ x
x=5

# Laske neliö 5-1 käyttämällä silmukkaa asti
siihen asti kun [ $ x -he 0 ]
tehdä
neliömetriä= $((x*x))
heitti pois 'Neliö$ xOn$ neliömetriä''
((x--))
tehty

#18. Kuinka aliohjelmat voidaan julistaa ja kutsua bashissa?

Bashissa funktiota tai menettelyä kutsutaan aliohjelmaksi. Bash -aliohjelman ilmoittaminen ja kutsuminen eroaa muista kielistä. Mitään argumenttia ei voida julistaa aliohjelmissa, toisin kuin muut vakiomalliset ohjelmointikielet. Paikalliset muuttujat voidaan kuitenkin määritellä aliohjelmassa käyttämällä 'paikallinen' avainsana.

Esimerkki:

#!/bin/bash
# Alusta muuttuja $ x ja $ y, jotka ovat globaaleja
x=10
ja=35

# Ilmoita toiminto
myFunc() {
# Ilmoita paikallinen muuttuja $ x
paikallinen x=viisitoista

# Määritä globaali muuttuja $ y uudelleen
ja=25

# Laske summa x ja y
Kanssa= $((x + y))

# Tulosta paikallisen muuttujan, $ x ja globaalin muuttujan, $ y summa
heitti pois 'Summa$ xja$ yyhtä kuin$ z''
}

# Soita toimintoon
myFunc

# Tulosta globaalimuuttujien summa, $ x ja $ y
heitti pois 'Summa$ xja$ yyhtä kuin$ z''

#19. Kuinka leikata ja tulostaa osa merkkijonodatasta bashissa?

Bashissa ei ole sisäänrakennettua toimintoa muiden kielten tapaan, joka leikkaa osan merkkijonotiedoista. Mutta käyttämällä parametrin laajennusta mikä tahansa merkkijonoarvo voidaan leikata bashiksi. Parametrien laajennuksessa voidaan määrittää kolme osaa erottamalla ne kaksoispisteellä minkä tahansa merkkijonotiedon osan leikkaamiseksi. Tässä kaksi ensimmäistä osaa ovat pakollisia ja viimeinen osa on valinnainen. Ensimmäinen osa sisältää tärkeimmän merkkijonomuuttujan, jota käytetään leikkaamiseen, toinen osa on aloituskohta, josta merkkijono leikataan, ja kolmas osa on katkaisunarun pituus. Aloitusasento on laskettava nollasta ja pituus laskettava yhdestä pääjonosta, jotta leikkuuarvo saadaan.

Esimerkki:

#!/bin/bash
# Alusta merkkijonon arvoksi $ string
merkkijono='Python -skriptikieli'
# Leikkaa merkkijonon arvo kohdasta 7 merkkijonon loppuun
heitti pois $ {string: 7}
# Leikkaa 9 merkin merkkijono arvosta paikasta 7
heitti pois $ {string: 7: 9}
# Leikkaa merkkijonon arvo 17: stä 20: een
heitti pois $ {string: 17: -4}

#20. Mainitse joitakin tapoja suorittaa aritmeettisia toimintoja bashissa?

Aritmeettisia toimintoja voidaan tehdä monella tapaa bashissa. 'Anna', 'lauseke', 'bc' ja kaksinkertaiset kiinnikkeet ovat yleisimpiä tapoja suorittaa aritmeettisia toimintoja bashissa. Näiden komentojen käyttö on esitetty seuraavassa esimerkissä.

Esimerkki:

#!/bin/bash
# Vähennyksen laskeminen käyttämällä lausetta ja parametrin laajennusta
var1= $( lauseke 120-100 )
# tulosta tulos
heitti pois $ var1
# Laske lisäys komennolla let
antaa var2=200+300
# Tulosta rsult
heitti pois $ var2
# Laske ja tulosta jakoarvo käyttämällä 'bc' saadaksesi tuloksen
# murtoluvulla
heitti pois 'asteikko = 2; 44/7 ' | bc
# Laske kertolasku kaksoissulkeilla
var3= $(( 5*3 ))
# Tulosta tulos
heitti pois $ var3

#21. Kuinka tarkistaa, onko hakemisto olemassa tai ei käytä bashia?

Bashilla on monia testikomentoja, joilla voidaan tarkistaa, onko tiedosto tai hakemisto olemassa ja onko tiedoston tyyppi. '-D' -vaihtoehtoa käytetään hakemistopolun kanssa ehdollisena lausekkeena sen tarkistamiseksi, onko hakemisto olemassa vai ei bashissa. Jos hakemisto on olemassa, se palauttaa tosi, muuten se palauttaa epätosi.

Esimerkki:

#!/bin/bash
# Määritä hakemistolle polku muuttujassa $ path
polku='/home/ubuntu/temp'
# Tarkista, onko hakemisto olemassa vai ei
jos [ -d ''$ polku'' ];sitten
# Tulosta viesti, jos hakemisto on olemassa
heitti pois 'Hakemisto on olemassa'
muu
# Tulosta viesti, jos hakemistoa ei ole
heitti pois 'Hakemistoa ei ole olemassa'
olla

#22. Kuinka bash -komentosarja voidaan lopettaa suorittamatta kaikkia lausuntoja?

Käyttämällä 'Poistua' Bash -komentosarja voidaan lopettaa suorittamatta kaikkia käskyjä. Seuraava skripti tarkistaa, onko tietty tiedosto olemassa vai ei. Jos tiedosto on olemassa, se tulostaa tiedoston kaikki merkit ja jos tiedostoa ei ole, se lopettaa komentosarjan näyttämällä viestin.

Esimerkki:

#!/bin/bash

# Alusta tiedostonimi muuttujalle $ filename
Tiedoston nimi='course.txt'

# Tarkista, onko tiedosto olemassa vai ei, käyttämällä -f -vaihtoehtoa
jos [ -f ''$ tiedostonimi'' ];sitten
# Tulosta viesti, jos tiedosto on olemassa
heitti pois ''$ tiedostonimiolemassa'
muu
# Tulosta viesti, jos tiedostoa ei ole
heitti pois ''$ tiedostonimiei ole olemassa '
# Lopeta komentosarja
poistua 1
olla

# Laske tiedoston pituus, jos tiedosto on olemassa
pituus=``WC -c $ tiedostonimi``

# Tulosta tiedoston pituus
heitti pois 'Merkkejä yhteensä -$ pituus''

#23. Mitä hyötyä tauko- ja jatkolausunnoista on bashissa?

tauko lausetta käytetään lopettamaan silmukasta suorittamatta täyttä iteraatiota ehdon ja jatkaa lauseketta käytetään silmukassa joidenkin lausekkeiden jättämiseen pois ehdon perusteella. Käyttötarkoitukset tauko ja jatkaa lausumat selitetään seuraavassa esimerkissä.

Esimerkki:

#!/bin/bash
# Alusta muuttuja $ i arvoon 0 aloittaaksesi silmukan
i=0
# silmukka toistuu 10 kertaa
sillä aikaa [ $ i -he 10 ]
tehdä
# Suurenna arvoa $ i yhdellä
((minä ++))
# Jos arvo $ i on 8, lopeta silmukka käyttämällä break -lauseketta
jos [ $ i -ekv 8 ];sitten
tauko;
olla
# Jos $ i arvo on suurempi kuin 6, jätä silmukan viimeinen lause pois
# käyttämällä Jatka -lauseketta
jos [ $ i -antaa 6 ];sitten
jatkaa;
olla
heitti pois 'nykyinen arvo i =$ i''
tehty

# Tulosta $ i: n arvo silmukan päätyttyä
heitti pois 'Nyt arvo i =$ i''

#24. Kuinka tehdä bash -tiedosto suoritettavaksi?

Suoritettavat bash -tiedostot voidaan tehdä käyttämällä 'Chmod' komento. Suoritettava lupa voidaan asettaa käyttämällä '+ X' sisään chmod komento komentotiedoston tiedostonimellä. Bash -tiedostot voidaan suorittaa ilman nimenomaista 'lyödä' komento sen jälkeen, kun olet määrittänyt tiedoston suoritusbitin.

Esimerkki:

# Aseta suoritusbitti
$chmod+ x tiedostonimi.sh

# Suorita suoritettava tiedosto
$./tiedostonimi.sh

#25. Mainitse joitain vaihtoehtoja, joita käytetään tiedostojen testaamiseen

Monia vaihtoehtoja on saatavilla bash -testitiedostona. Jotkut vaihtoehdot on mainittu alla.

Vaihtoehto Kuvaus
-f Sitä käytetään tiedoston olemassaolon testaamiseen ja se on tavallinen tiedosto.
-Ja Sitä käytetään vain tiedoston olemassaolon testaamiseen.
-r Sitä käytetään tiedoston olemassaolon testaamiseen ja sillä on lukuoikeus.
-sisään Sitä käytetään tiedoston olemassaolon testaamiseen ja sen on kirjoitettava lupa.
-x Sitä käytetään tiedoston olemassaolon testaamiseen ja sillä on suoritusoikeus.
-d Sitä käytetään hakemiston olemassaolon testaamiseen.
-ne Sitä käytetään tiedoston olemassaolon testaamiseen ja se on symbolinen linkki.
-S Sitä käytetään tiedoston olemassaolon testaamiseen ja se on pistorasia.
-b Sitä käytetään testaamaan tiedosto on lohko laite.
-s Sitä käytetään tarkistamaan, että tiedosto ei ole nollakokoa.
-esim Sitä käytettiin tarkistamaan, että ensimmäisen tiedoston sisältö on uudempi kuin toinen tiedosto. Esimerkiksi tiedosto1 -nt tiedosto2 osoittaa, että tiedosto1 on uudempi kuin tiedosto2.
-o t Sitä käytettiin tarkistamaan, että ensimmäisen tiedoston sisältö on vanhempi kuin toinen tiedosto. Esimerkiksi tiedosto1 -ei tiedosto2 osoittaa, että tiedosto1 on vanhempi kuin tiedosto2.
-ef Sitä käytetään tarkistamaan, että kaksi kovaa linkkiä viittaavat samaan tiedostoon. Esimerkiksi flink1 -ef flink2 osoittaa, että flink1 ja flink2 ovat kovia linkkejä ja molemmat viittaavat samaan tiedostoon.

#26. Mitä tarkoittaa 'bc' ja miten tätä komentoa voidaan käyttää bashissa?

Täysi muoto 'bc' on Bash -laskin suorittaaksesi aritmeettisia toimintoja tarkemmin bashissa. Murtoluku jätetään pois, jos jokin aritmeettinen operaatio tehdään bashissa käyttämällä 'Laus.' komento. Murtoluku voidaan pyöristää myös käyttämällä asteikko arvo kanssa 'Bc' komento.

Esimerkki:

#!/bin/bash
# Laske jako ilman murto -arvoa
heitti pois '39 / 7 ' | bc

# Laske jako täydellä murto -arvolla
heitti pois '39 / 7 ' | bc -he

# Laske jako kolmella numerolla desimaalin jälkeen
heitti pois 'asteikko = 3; 39/7 ' | bc

#27. Kuinka voit tulostaa tietyn tiedoston rivin bash -muodossa?

On monia tapoja tulostaa tietty rivi bashissa. Miten 'awk', 'sed' ja 'Häntä' komentoja voidaan käyttää tietyn tiedoston rivin tulostamiseen bash -muodossa, näkyy seuraavassa esimerkissä.

Esimerkki:

#!/bin/bash

# Lue ja tallenna tiedoston ensimmäinen rivi käyttämällä 'awk' -komentoa NR -muuttujan kanssa
rivi 1=``awk '{if (NR == 1) print $ 0}'course.txt``
# Tulosta viiva
heitti pois $ rivi 1

# Lue tiedoston toinen rivi komennolla 'sed', jossa on -n -vaihtoehto
rivi 2=``sed -n2p kurssi.txt``
# Tulosta viiva
heitti pois $ rivi2

# Lue tiedoston viimeinen rivi komennolla `tail ', jossa on -n -vaihtoehto
rivi 3=``häntä -n 1course.txt``
# Tulosta tiedosto
heitti pois $ rivi 3

#28. Mikä on IFS?

IFS on erityinen kuoromuuttuja. Koko muoto IFS on sisäinen kenttäerotin,
se erottaa sanan tekstiriviltä. Sitä käytetään pääasiassa merkkijonon jakamiseen, komennon lukemiseen, tekstin korvaamiseen jne.

Esimerkki:

#!/bin/bash
# Ilmoita ':' erottimena tekstin jakamiseen
IFS=':'
# Määritä tekstitiedoille teksti: $ tekstille $
teksti='Punainen: vihreä: sininen'
# for loop lukee jokaisen sanan sen jälkeen, kun teksti on jaettu IFS: n perusteella
vartentuntiasisään $ teksti;tehdä
# Tulosta sana
heitti pois $ tuntia
tehty

#29. Kuinka saada selville merkkijonotiedon pituus?

'Lauseke', 'wc' ja 'Voi' komentoja voidaan käyttää merkkijonodatan pituuden selvittämiseen bashissa. 'Laus.' ja 'Voi' komentoja käyttää pituus vaihtoehto, 'WC' komento käyttää '-C' vaihtoehto laskea merkkijonon pituus.

Esimerkki:

Edellä olevien komentojen käyttö näkyy seuraavassa skriptissä.

#!/bin/bash
# Laske pituus käyttämällä lausekkeen pituutta
heitti pois ``lausekepituus'Pidän PHP: stä'``
# Laske pituus käyttämällä wc -komentoa
heitti pois 'Pidän Bashista' | WC -c
# Laske pituus käyttämällä `awk` -komentoa
heitti pois 'Pidän Pythonista' | awk '{print length}'

#30. Kuinka suorittaa useita bash -skriptejä rinnakkain?

Useita bash -skriptejä voidaan suorittaa rinnakkain käyttämällä nohup komento. Seuraavassa esimerkissä näytetään, kuinka useita bash -tiedostoja voidaan suorittaa rinnakkain kansiosta.

Esimerkki:

# Määritä kansion nimi polulle siinä muuttujassa $ dir, joka sisältää
# useita bash -tiedostoja
sinulle='home/Ubuntu/temp'

# for loop lukee jokaisen tiedoston hakemistosta ja suorittaa rinnakkain
vartenkäsikirjoitussisäänsinulle/ *.sh
tehdä
nohup lyödä ''$ -kirjoitus'' &
tehty

Johtopäätös:

Useimmat bash -käsikirjoituksen perushaastattelukysymykset on kuvattu tässä artikkelissa lukijoille, jotka haluavat aloittaa uransa bash -ohjelmoijana.