30 bash scenarijų Interviu klausimai ir atsakymai

30 Bash Script Interview Questions



„Bash“ scenarijus yra labai naudinga ir galinga programavimo kalba, daugiausia naudojama automatizuojant bet kokias rankines užduotis. Darbo ieškantis asmuo, norintis būti automatizavimo testuotojas ar „bash“ programuotojas, interviu turi užduoti keletą bendrų klausimų. „Linux“ egzistuoja įvairių tipų apvalkalo scenarijai. Vienas iš populiariausių ir dažniausiai naudojamų apvalkalo scenarijų yra „Bourne Again Shell“ arba „Bash“. Šiame straipsnyje aprašyti 30 svarbių interviu klausimų ir atsakymų apie „bash“ scenarijų kalbą, kad būtų galima pasiruošti darbui.

#01. Kas yra bash scenarijus?

„Bash“ scenarijus yra apvalkalo programavimo kalba. Paprastai iš terminalo vykdome daugelio tipų apvalkalo komandas, įvesdami kiekvieną komandą atskirai, o tai reikalauja laiko ir pastangų. Jei mums reikia paleisti tas pačias komandas dar kartą, turime vėl vykdyti visas komandas iš terminalo. Bet naudodami „bash“ scenarijų, mes galime išsaugoti daugybę „shell“ komandų teiginių viename „bash“ faile ir bet kuriuo metu vykdyti failą viena komanda. Daugelį su sistemos administravimu susijusių užduočių, programų diegimo, disko atsarginių kopijų kūrimo, žurnalų įvertinimo ir kt. Galima atlikti naudojant tinkamą „bash“ scenarijų.







#02. Kokie yra „bash“ scenarijų naudojimo pranašumai?

„Bash“ scenarijus turi daug privalumų, kurie aprašyti žemiau:



  • Tai lengva naudoti ir išmokti.
  • Daugelį rankinių užduočių, kurias reikia atlikti dažnai, galima atlikti automatiškai, parašius „bash“ scenarijų.
  • Kelių apvalkalo komandų seka gali būti vykdoma viena komanda.
  • „Bash“ scenarijus, parašytas vienoje „Linux“ operacinėje sistemoje, gali būti lengvai įvykdytas kitoje „Linux“ operacinėje sistemoje. Taigi, jis yra nešiojamas.
  • Derinti „bash“ yra lengviau nei kitose programavimo kalbose.
  • Komandinės eilutės sintaksė ir komandos, naudojamos terminale, yra panašios į komandas ir sintaksę, naudojamą „bash“ scenarijuje.
  • „Bash“ scenarijus gali būti naudojamas susieti su kitais scenarijaus failais.

#03. Paminėkite „bash“ scenarijų trūkumus

Žemiau pateikiami kai kurie „bash“ scenarijaus trūkumai:



  • Jis veikia lėčiau nei kitos kalbos.
  • Netinkamas scenarijus gali sugadinti visą procesą ir sukelti sudėtingą klaidą.
  • Tai netinka kuriant didelę ir sudėtingą programą.
  • Jame yra mažiau duomenų struktūros, palyginti su kitomis standartinėmis programavimo kalbomis.

#04. Kokio tipo kintamieji naudojami „bash“?

Bash scenarijuje gali būti naudojami dviejų tipų kintamieji. Šitie yra:

Sistemos kintamieji
Kintamieji, kuriuos iš anksto nustato ir prižiūri „Linux“ operacinė sistema, vadinami sistemos kintamaisiais. Šio tipo kintamieji visada naudojami didžiosiomis raidėmis. Numatytosios šių kintamųjų vertės gali būti pakeistos atsižvelgiant į reikalavimus.

`set`,` env` ir ` printenv `komandomis galima spausdinti sistemos kintamųjų sąrašą.

Pavyzdys:





#!/bin/bash
# Spausdinimo sistemos kintamieji

#Print Bash apvalkalo pavadinimas
išmetė $ BASH

# „Print Bash shell“ versija
išmetė $ BASH_VERSION

# Spausdinti namų katalogo pavadinimą
išmetė $ HOME

Vartotojo apibrėžtas kintamasis

Kintamieji, kuriuos sukuria ir prižiūri vartotojai, vadinami vartotojo apibrėžtais kintamaisiais. Jie taip pat vadinami vietiniais kintamaisiais. Šio tipo kintamuosius galima deklaruoti naudojant mažąsias arba didžiąsias raides arba tiek didžiąsias, tiek mažąsias raides. Tačiau geriau vengti naudoti visas didžiąsias raides, kad atskirtumėte kintamuosius nuo sistemos kintamųjų.
Pavyzdys:

#!/bin/bash

ant vieno=100
išmetė $ num

#05. Kaip deklaruoti ir ištrinti kintamuosius „bash“?

Kintamąjį galima deklaruoti bash pagal duomenų tipą arba be duomenų tipo. Jei koks nors bash kintamasis deklaruojamas be skelbti komanda, tada kintamasis bus traktuojamas kaip eilutė. Bash kintamasis deklaruojamas su skelbti komanda, skirta apibrėžti kintamojo duomenų tipą laiko deklaracijoje.



- r , -i, -a, -A, -l, -u, -t ir - X parinktis galima naudoti su skelbti komandą deklaruoti kintamąjį su skirtingais duomenų tipais.

Pavyzdys:

#!/bin/bash

#Declare kintamasis be jokio tipo
ant vieno=10

#Vertybės bus sujungtos, bet nepridėtos
rezultatas=$ num+dvidešimt
išmetė $ rezultatas

#Declare kintamasis su sveiko skaičiaus tipu
skelbti -i ant vieno=10

#Vertybės bus pridėtos
skelbti -i rezultatas= skaičius+dvidešimt
išmetė $ rezultatas

nenustatyta komanda naudojama bet kokiam „bash“ kintamajam pašalinti. Po naudojimo kintamasis bus neprieinamas arba neapibrėžtas nenustatyta komandą.

Pavyzdys:

#!/bin/bash

p=„Linux“ patarimas
išmetė $ str
nenustatyta $ str
išmetė $ str

#06. Kaip pridėti komentarus „bash“ scenarijuje?

Vienos eilutės ir kelių eilučių komentarai gali būti naudojami „bash“ scenarijuje. ' # „Simbolis naudojamas vienos eilutės komentarams. '<<’ simbolis su skiriamuoju ženklu ir ':' su vienu (‘) naudojami kelių eilučių komentarams pridėti.

Pavyzdys:

#!/bin/bash
#Spausdinti tekstą [Vienos eilutės komentaras]
išmetė „Bash“ programavimas
< Apskaičiuokite sumą
Iš dviejų skaičių [kelių eilučių komentaras]
Pridėti komentarą

ant vieno=25+35
išmetė $ num
:'
Sujunkite du
Eilutės duomenys [kelių eilučių komentaras]
'

Styginė='Sveiki'
išmetė $ eilutė„Pasaulis“

#07. Kaip galite sujungti eilutes bash scenarijuje?

Eilutės reikšmės gali būti derinamos bash skirtingais būdais. Paprastai eilučių reikšmės sujungiamos sudedant, bet yra ir kitų būdų, kaip „bash“ sujungti eilutės duomenis.

Pavyzdys:

#!/bin/bash
#Inicijuokite kintamuosius
str1=„PHP“
str2=„Bash“
str3=„Perl“

# Spausdinkite eilutę kartu su tarpais
išmetė $ str1 $ str2 $ str3

#Sujunkite visus kintamuosius ir išsaugokite kitame kintamajame
p='$ str1,$ str2ir$ str3'

#Sujunkite kitus eilutės duomenis su esama eilutės reikšme
str + ='yra scenarijų kalbos'

#Atspausdinkite eilutę
išmetė $ str

#08. Kokios komandos naudojamos spausdinti išvestį „bash“?

„aidas“ ir `printf` komandos gali būti naudojamos spausdinti išvestį „bash“. `aidas `komanda naudojama spausdinti paprastą išvestį ir `printf` komanda naudojama spausdinti suformatuotą išvestį.

Pavyzdys:

#!/bin/bash

#Atspausdinkite tekstą
išmetė „Sveiki atvykę į„ LinuxHint “
svetainėje='linuxhint.com'
#Spausdinkite suformatuotą tekstą
printf „%s“ yra populiari tinklaraščio svetainė n' $ svetainė

#09. Kaip gauti įvestį iš terminalo „bash“?

`skaityti` komanda naudojama „bash“ scenarijuje, norint įvesti informaciją iš terminalo.

Pavyzdys:

#!/bin/bash
#Spausdinti pranešimą
išmetė „Įveskite savo vardą“
#Priimkite vartotojo įvestį
skaitytivardas
# Išspausdinkite $ name reikšmę kita eilute
išmetė 'Jūsų vardas$ pavadinimas'

#10. Kaip naudoti komandinės eilutės argumentus „bash“?

Komandinės eilutės argumentus skaito 1 USD, 2 USD, 3 USD… USD kintamieji. Vykdant „bash“ scenarijų, terminale pateikiamos komandinės eilutės argumentų vertės. 1 USD naudojamas pirmam argumentui perskaityti, 2 USD naudojamas perskaityti antrąjį argumentą ir pan.

Pavyzdys:

#!/bin/bash
#Patikrinkite, ar pateikti argumentai, ar ne
jei [[ $ # -ekv 0 ]];tada
išmetė „Jokių argumentų nepateikta“.
išeiti 0
būti
#Išsaugokite pirmąją argumento vertę
spalva=1 USD
# Atspausdinkite argumentą kita eilute
printf „Mėgstamiausia spalva yra %s n' $ spalva

#11. Ar bash yra silpnai įvesta kalba? Kodėl?

Taip, „bash“ laikoma silpnai arba laisvai įvesta kalba, nes jai nereikia deklaruoti duomenų tipo kintamojo deklaravimo metu. Visi „bash“ kintamieji pagal numatytuosius nustatymus yra traktuojami kaip eilutė, o kintamojo tipas bus nustatytas atsižvelgiant į dabartinę vertę. „Bash“ kintamuosius su duomenų tipais galima apibrėžti naudojant skelbti komandą su konkrečia parinktimi. Tačiau duomenų tipų apibrėžimo galimybės yra ribotos ir nepalaiko visų tipų duomenų. Pavyzdžiui, plūdė duomenų tipo negalima deklaruoti naudojant skelbti komandą.

Pavyzdys:

#!/bin/bash

#$ MyVar duomenų tipas pagal numatytuosius nustatymus yra eilutė
myVar=29

# Spausdinkite kintamąjį
išmetė $ myVar

# Skelbkite sveikųjų skaičių kintamąjį $ number, kurio vertė yra 67
skelbti -i skaičius=67

#Spausdinkite kintamąjį
išmetė $ numeris

# Priskirkite eilutės duomenis į skaitinį kintamąjį. Ši eilutė sugeneruos
# sintaksės klaida ir $ numerio reikšmė nesikeis
skaičius='Man patinka bash'
išmetė $ numeris

#12. Kaip perskaityti antrąjį žodį ar stulpelį iš kiekvienos failo eilutės?

Antrąjį failo žodį ar stulpelį galima perskaityti „bash“ scenarijuje, lengvai naudojant įvairias „bash“ komandas, pvz., „Awk“, „sed“ ir tt Čia naudojamas „awk“ parodytas kitame pavyzdyje.
Pavyzdys: Tarkime, faile course.txt yra toks turinys ir mes išspausdinome tik antrą žodį iš kiekvienos šio failo eilutės.

CSE201 Java programavimas
CSE303 duomenų struktūra
CSE408 Unix programavimas#!/bin/bash
# Šis scenarijus išspausdins antrąjį kiekvienos eilutės žodį iš failo course.txt.
# katės komandos išvestis bus perduota awk komandai, kuri skaitys antrąjį žodį
# kiekvienos eilutės.
išmetė ``katėžinoma.txt| awk „{print $ 2}“``

#13. Kaip deklaruoti ir pasiekti masyvo kintamąjį bash?

Tiek skaitinius, tiek asociatyvius masyvus palaiko „bash“ scenarijus. Masyvo kintamasis gali būti deklaruojamas naudojant komandą deklaruoti ir be jos. parinktis naudojama su deklaruoti komanda, norint apibrėžti skaitinį masyvą ir -TO parinktis naudojama su deklaruoti pareiškimą, kad apibrėžtų asociatyvų masyvą bash. Be komandos deklaruoti, skaičių masyvą galima apibrėžti tik „bash“.

Pavyzdys:

#!/bin/bash

# Paskelbkite paprastą skaičių masyvą
arr1=(CodeIgniter Laravel ReactJS)

# Atspausdinkite pirmąją elemento vertę $ arr1
išmetė $ {arr1 [0] {

# Skelbkite skaičių masyvą naudodami komandą deklaruoti
skelbti arr2=(HTML CSS „JavaScript“)

# Atspausdinkite antrojo elemento reikšmę $ arr2
išmetė $ {arr2 [1]}

# Deklaruokite asociatyvų masyvą naudodami deklaravimo pareiškimą
skelbti -TO arr3=( [sistema]= Laravelis[TVS]= „Wordpress“[Biblioteka]= JQuery)

# Atspausdinkite trečiojo elemento reikšmę $ arr3
išmetė $ {arr3 [biblioteka]}

Visus masyvo elementus galima pasiekti naudojant bet kokią kilpą arba „*“ simbolį kaip masyvo indeksą.

#14. Kaip sąlyginiai teiginiai gali būti naudojami „bash“?

Dažniausiai sąlyginis teiginys daugelyje programavimo kalbų yra if-elseif-else pareiškimas. Sintaksė if-elseif-else teiginys bash šiek tiek skiriasi nuo kitų programavimo kalbų. 'Jei' teiginys gali būti deklaruojamas dviem būdais naudojant „bash“ scenarijų ir kiekvieno tipo 'Jei' blokas turi būti uždarytas 'būti' . 'Jei' teiginys gali būti apibrėžtas trečiaisiais arba pirmaisiais skliausteliais, kaip ir kitos programavimo kalbos.

Sintaksė:
Į.

jei [būklė];
tada
pareiškimus
būti

B.

jei [būklė];tada
pareiškimus1
Kitas
pareiškimas2
būti

C.

jei [būklė];tada
pareiškimas1
elifas[būklė];tada
pareiškimas2
….
Kitas
pareiškimas n
būti

Pavyzdys:

#!/bin/bash

# Priskirkite vertę $ n
n=30
# Patikrinkite, ar $ n yra didesnis nei 100, ar ne
jei [ $ n -gt 100 ];tada
išmetė '$ nyra mažesnis nei 100 '
# Patikrinkite, ar $ n ID yra didesnis nei 50, ar ne
elifas [ $ n -gt penkiasdešimt ];tada
išmetė '$ nyra mažesnis nei 50 '
Kitas
išmetė '$ nyra mažesnis nei 50 '
būti

#15. Kaip palyginti vertes bash?

Norint palyginti reikšmes, „bash“ gali būti naudojami šeši palyginimo operatorių tipai. Yra du būdai, kaip šiuos operatorius naudoti „bash“, atsižvelgiant į duomenų tipą. Jie paminėti žemiau.

Styginių palyginimas Sveikų skaičių palyginimas apibūdinimas
== -ekv Jis naudojamas lygybei patikrinti
! = -gimęs Jis naudojamas nelygybei patikrinti
< -lt Jis naudojamas patikrinti, ar pirmoji vertė yra mažesnė už antrąją, ar ne
> -gt Jis naudojamas patikrinti, ar pirmoji vertė yra didesnė už antrąją, ar ne
<= -jie Jis naudojamas patikrinti, ar pirmoji vertė yra mažesnė arba lygi antrajai vertei, ar ne
> = -duoti Jis naudojamas patikrinti, ar pirmoji vertė yra didesnė ar lygi antrajai vertei, ar ne

Pavyzdys:

#!/bin/bash
# Inicijuokite $ n
n=130
arba='net'
# Patikrinkite, ar $ n yra didesnis arba lygus 100, ar nenaudojate „–ge“.
jei [ $ n -duoti 100 ];tada
išmetė '$ nyra didesnis arba lygus 100 '
Kitas
išmetė '$ nyra mažesnis nei 100 '
būti
# Patikrinkite, ar $ n yra lyginis ar nelyginis naudojant „==“ operatorių
jei (( $ o=='net' ));tada
išmetė „Skaičius lygus“
Kitas
išmetė „Skaičius nelyginis“
būti

#16. Kuris sąlyginis teiginys gali būti naudojamas kaip alternatyva if-elseif-else teiginiams bash?

'Atvejis' teiginys gali būti naudojamas kaip alternatyva tp if-elseif-if pareiškimas. Sintaksė, skirta 'Atvejis' teiginys bash scenarijuose skiriasi nuo jungiklis kitų programavimo kalbų teiginys. 'Atvejis' blokas uždarytas „Esakas“ pareiškimas bash. Ne ' pertrauka „Teiginys naudojamas viduje“ atvejis „Blokas baigti nuo bloko.

Sintaksė:

atvejis į
Rungtynių modelis1)komandas;;
Rungtynių modelis2)komandas;;
……
Rungtynių modelis n)komandas;;
esac

Pavyzdys:

#!/bin/bash
#Inicijuokite kintamąjį $ ticket
bilietas=101
# Palyginkite $ bilieto vertę su 23, 101 ir 503
atvejis $ bilietas į
2. 3)
# Spausdinkite pranešimą, jei vertė yra 23
išmetė „Jūs gavote pirmąjį prizą“;;
101)
# Spausdinkite pranešimą, jei vertė yra 101
išmetė „Jūs gavote antrąją premiją“;;
503)
# Spausdinkite pranešimą, jei vertė yra 503
išmetė „Jūs gavote trečiąją premiją“;;
*)
# Spausdinkite pranešimą, jei vertė nesutampa su 23, 101 ir 503
išmetė „Atsiprašau, pabandyk kitą kartą“
išeiti 0;;
esac

#17. Kokio tipo kilpas galima naudoti bash?

„Bash“ scenarijus palaiko trijų tipų kilpas. Šitie yra tuo tarpu, už ir iki kilpos. Kilpos bash sistemoje tikrina būklę ciklo pradžioje. Nors kilpa veikia tol, kol sąlyga išlieka teisinga ir iki kilpa veikia tol, kol sąlyga lieka klaidinga. Yra du naudojimo būdai dėl kilpa. Vienas yra bendras dėl kilpa, kurią sudaro trys dalys, o kita yra in-in kilpa. Šių trijų kilpų naudojimas parodytas šiame pavyzdyje.

Pavyzdys:

#!/bin/bash
# Inicijuokite $ n
n=5
# Apskaičiuokite kvadratą 5-1 naudodami ciklą
tuo tarpu [ $ n -gt 0 ]
daryti
kv= $((n*n))
išmetė 'Kvadratas$ nyra$ kv'
((n-))
padaryta

# Apskaičiuokite kvadratą 5-1 naudodami kilpą
dėl (( i=5; i>0; aš-))
daryti
kv= $((i*i))
išmetė 'Kvadratas$ iyra$ kv'
padaryta

# Inicijuokite $ x
x=5

# Apskaičiuokite kvadratą 5-1 naudodami ciklą iki
iki [ x USD -jie 0 ]
daryti
kv= $((x*x))
išmetė 'Kvadratasx USDyra$ kv'
((x--))
padaryta

#18. Kaip paprogrames galima deklaruoti ir iškviesti bash?

Bash funkcija ar procedūra vadinama paprogramė. Paprogramės deklaravimas ir iškvietimas bash kalba skiriasi nuo kitų kalbų. Skirtingai nuo kitų standartinių programavimo kalbų, paprogramėse negalima pateikti jokių argumentų. Tačiau vietinius kintamuosius galima apibrėžti paprogramėje, naudojant 'vietinis' raktinis žodis.

Pavyzdys:

#!/bin/bash
# Inicijuokite kintamąjį $ x ir $ y, kurie yra globalūs
x=10
ir=35

# Paskelbkite funkciją
myFunc() {
# Deklaruokite vietinį kintamąjį $ x
vietinis x=penkiolika

# Iš naujo priskirti pasaulinį kintamąjį $ y
ir=25

# Apskaičiuokite $ x ir $ y sumą
Su= $((x + y))

# Atspausdinkite vietinio kintamojo, $ x ir visuotinio kintamojo $ y sumą
išmetė 'Sumax USDir$ ylygusz z $'
}

# Skambinkite funkcijai
myFunc

# Atspausdinkite pasaulinių kintamųjų sumą, $ x ir $ y
išmetė 'Sumax USDir$ ylygusz z $'

#19. Kaip iškirpti ir atspausdinti tam tikrą eilutės duomenų dalį „bash“?

„Bash“ neturi integruotos funkcijos, kaip ir kitos kalbos, kad būtų galima iškirpti tam tikrą eilutės duomenų dalį. Tačiau naudojant parametrų išplėtimą bet kurią eilutės reikšmę galima iškirpti bash. Išplėsdami parametrus, galite apibrėžti tris dalis, atskiriant juos dvitaškiu, kad būtų iškirpta bet kuri eilutės duomenų dalis. Čia pirmosios dvi dalys yra privalomos, o paskutinė - neprivaloma. Pirmoje dalyje yra pagrindinis eilutės kintamasis, kuris bus naudojamas kirpti, antroji dalis yra pradinė padėtis, nuo kurios bus nukirpta eilutė, o trečioji dalis - pjovimo eilutės ilgis. Pradinė padėtis turi būti skaičiuojama nuo 0, o ilgis - nuo 1 pagrindinės eilutės, kad būtų galima gauti pjovimo vertę.

Pavyzdys:

#!/bin/bash
# Inicijuokite eilutės reikšmę į $ string
eilutė=„Python“ scenarijų kalba
# Iškirpkite eilutės reikšmę nuo 7 padėties iki eilutės pabaigos
išmetė $ {string: 7}
# Iškirpkite 9 simbolių eilutės reikšmę iš 7 pozicijos
išmetė $ {string: 7: 9}
# Iškirpkite eilutės reikšmę nuo 17 iki 20
išmetė $ {string: 17: -4}

#20. Paminėkite keletą būdų, kaip atlikti aritmetines operacijas bash?

Aritmetines operacijas bash galima atlikti keliais būdais. „Leisti“, „išrašyti“, „prieš“ ir dvigubi laikikliai yra labiausiai paplitęs būdas atlikti aritmetines operacijas bash. Šių komandų naudojimas parodytas šiame pavyzdyje.

Pavyzdys:

#!/bin/bash
# Atimties apskaičiavimas naudojant išraišką ir parametrų išplėtimą
var1= $( išraiška 120-100 )
# atsispausdinkite rezultatą
išmetė $ var1
# Apskaičiuokite pridėjimą naudodami komandą let
leisti var2=200+300
# Atspausdinkite rsult
išmetė $ var2
# Apskaičiuokite ir atsispausdinkite padalijimo vertę naudodami „bc“, kad gautumėte rezultatą
# su trupmenine verte
išmetė 'skalė = 2; 44/7 ' | bc
# Apskaičiuokite daugybos vertę naudodami dvigubus skliaustus
var3= $(( 5*3 ))
# Atspausdinkite rezultatą
išmetė $ var3

#21. Kaip patikrinti katalogą, ar jis nenaudojamas?

„Bash“ turi daug testavimo komandų, leidžiančių patikrinti, ar yra failas ar katalogas, ar ne. '-D' parinktis naudojama su katalogo keliu kaip sąlyginis teiginys, siekiant patikrinti, ar katalogas egzistuoja, ar ne. Jei katalogas egzistuoja, jis grąžins „true“, kitaip - „false“.

Pavyzdys:

#!/bin/bash
# Priskirkite katalogą su keliu kintamajame, $ path
kelias='/home/ubuntu/temp'
# Patikrinkite, ar katalogas yra, ar ne
jei [ -d '$ kelias' ];tada
# Spausdinkite pranešimą, jei katalogas yra
išmetė „Katalogas egzistuoja“
Kitas
# Spausdinkite pranešimą, jei katalogo nėra
išmetė „Katalogas neegzistuoja“
būti

#22. Kaip galima nutraukti „bash“ scenarijų neįvykdžius visų teiginių?

Naudojant 'Išeiti' komandą, „bash“ scenarijų galima nutraukti neįvykdžius visų teiginių. Šis scenarijus patikrins, ar yra tam tikras failas, ar ne. Jei failas egzistuoja, jis išspausdins visus failo simbolius, o jei failo nėra, jis užbaigs scenarijų rodydamas pranešimą.

Pavyzdys:

#!/bin/bash

# Inicijuokite failo pavadinimą į kintamąjį $ filename
failo pavadinimas=„course.txt“

# Patikrinkite, ar failas yra, ar ne, naudodami parinktį -f
jei [ -f '$ failo pavadinimas' ];tada
# Spausdinkite pranešimą, jei failas yra
išmetė '$ failo pavadinimasegzistuoja '
Kitas
# Spausdinkite pranešimą, jei failo nėra
išmetė '$ failo pavadinimasneegzistuoja '
# Nutraukite scenarijų
išeiti 1
būti

# Suskaičiuokite failo ilgį, jei failas yra
ilgio=``wc -c $ failo pavadinimas``

# Spausdinkite failo ilgį
išmetė „Iš viso simbolių -$ ilgio'

#23. Kokie yra pertraukos ir tęsinio teiginiai naudojant „bash“?

pertrauka sakinys naudojamas užbaigti iš ciklo neužbaigus visos iteracijos, remiantis sąlyga ir Tęsti teiginys naudojamas cikle, norint praleisti kai kuriuos teiginius, pagrįstus sąlyga. Naudojimai pertrauka ir Tęsti teiginiai paaiškinami šiame pavyzdyje.

Pavyzdys:

#!/bin/bash
# Inicijuokite kintamąjį $ i iki 0, kad pradėtumėte ciklą
i=0
# kilpa kartosis 10 kartų
tuo tarpu [ $ i -jie 10 ]
daryti
# Padidinkite vertę $ i 1
((aš ++))
# Jei $ i vertė lygi 8, nutraukite ciklą naudodami sakinį „break“
jei [ $ i -ekv 8 ];tada
pertrauka;
būti
# Jei $ i vertė yra didesnė nei 6, praleiskite paskutinį ciklo teiginį
# naudodami tęsinio sakinį
jei [ $ i -duoti 6 ];tada
Tęsti;
būti
išmetė 'dabartinė i vertė$ i'
padaryta

# Baigę darbą iš ciklo, atspausdinkite $ i vertę
išmetė „Dabar i reikšmė =$ i'

#24. Kaip padaryti „bash“ failą vykdomąjį?

Vykdomuosius bash failus galima sukurti naudojant 'Chmod' komandą. Vykdomąjį leidimą galima nustatyti naudojant „+ X“ į chmod komandą su scenarijaus failo pavadinimu. „Bash“ failus galima vykdyti be aiškaus 'Bash' komandą, nustačius to failo vykdymo bitą.

Pavyzdys:

# Nustatykite vykdymo bitą
$chmod+ x failo pavadinimas.sh

# Paleiskite vykdomąjį failą
$./failo pavadinimas.sh

#25. Paminėkite kai kurias parinktis, naudojamas failų testavimui

„Bash“ galima išbandyti daugybę failo parinkčių. Kai kurios parinktys paminėtos žemiau.

Parinktis apibūdinimas
-f Jis naudojamas failo egzistavimui patikrinti ir yra įprastas failas.
-Ir Jis naudojamas tik norint patikrinti, ar failas egzistuoja.
-r Jis naudojamas norint patikrinti, ar failas egzistuoja, ir jis turi skaitymo leidimą.
Jis naudojamas norint patikrinti, ar failas egzistuoja, ir turi gauti rašymo leidimą.
-x Jis naudojamas patikrinti, ar failas egzistuoja, ir turi leidimą vykdyti.
-d Jis naudojamas katalogo egzistavimui patikrinti.
-TAI Jis naudojamas failo egzistavimui patikrinti ir yra simbolinė nuoroda.
-S Jis naudojamas failo egzistavimui patikrinti ir yra lizdas.
-b Jis naudojamas norint patikrinti, ar failas yra blokinis įrenginys.
-s Jis naudojamas patikrinti, ar failas nėra nulinio dydžio.
-pvz Jis buvo naudojamas patikrinti, ar pirmojo failo turinys yra naujesnis nei antrojo. Pavyzdžiui, file1 -nt file2 rodo, kad file1 yra naujesnis nei file2.
-ne Jis buvo naudojamas patikrinti, ar pirmojo failo turinys yra senesnis nei antrojo. Pavyzdžiui, failas1 -ne failas2 rodo, kad failas1 yra senesnis nei failas2.
-jautis Jis naudojamas patikrinti, ar dvi kietosios nuorodos nurodo tą patį failą. Pavyzdžiui, „flink1 -ef flink2“ rodo, kad „flink1“ ir „flink2“ yra kietosios nuorodos ir abi nurodo tą patį failą.

#26. Ką reiškia „bc“ ir kaip šią komandą galima naudoti „bash“?

Visa „bc“ forma yra Bash skaičiuoklė tiksliau atlikti aritmetines operacijas bash. Dalinė dalis praleidžiama, jei bet kuri aritmetinė operacija atliekama naudojant „bash“ „Išraiška“ komandą. Dalinę dalį taip pat galima suapvalinti naudojant skalė vertė su „Bc“ komandą.

Pavyzdys:

#!/bin/bash
# Apskaičiuokite padalijimą be trupmeninės vertės
išmetė „39/7“ | bc

# Apskaičiuokite padalijimą su visa trupmenine verte
išmetė „39/7“ | bc -jie

# Apskaičiuokite padalijimą iš trijų skaitmenų po kablelio
išmetė 'skalė = 3; 39/7 ' | bc

#27. Kaip galite atspausdinti tam tikrą failo eilutę „bash“?

Yra daug būdų, kaip spausdinti tam tikrą eilutę „bash“. Kaip 'awk', 'sed' ir 'Uodega' komandos gali būti naudojamos spausdinti tam tikrą failo eilutę „bash“, parodyta šiame pavyzdyje.

Pavyzdys:

#!/bin/bash

# Perskaitykite ir išsaugokite pirmąją failo eilutę naudodami komandą „awk“ su kintamuoju NR
1 eilutė=``awk „{if (NR == 1) print $ 0}“žinoma.txt``
# Atspausdinkite eilutę
išmetė $ 1 eilutė

# Perskaitykite antrąją failo eilutę naudodami komandą „sed“ su parinktimi -n
2 eilutė=``sed -n2p kursas.txt``
# Atspausdinkite eilutę
išmetė $ 2 eilutė

# Perskaitykite paskutinę failo eilutę naudodami komandą „tail“ su parinktimi -n
3 eilutė=``uodega -n 1žinoma.txt``
# Spausdinkite failą
išmetė $ 3 eilutė

#28. Kas yra IFS?

IFS yra ypatingas apvalkalo kintamasis. Pilna forma IFS yra vidinis lauko atskyriklis,
jis veikia kaip atskirtuvas, atskiriantis žodį nuo teksto eilutės. Jis daugiausia naudojamas skaidyti eilutę, skaityti komandą, pakeisti tekstą ir pan.

Pavyzdys:

#!/bin/bash
# Skelbti „:“ kaip ribotuvą tekstui padalinti
IFS=':'
# Priskirkite teksto duomenis „:“ prie $ text
tekstas=„Raudona: žalia: mėlyna“
# for loop skaitys kiekvieną žodį padalijus tekstą pagal IFS
dėlvalį $ tekstas;daryti
# Atspausdinkite žodį
išmetė $val
padaryta

#29. Kaip sužinoti eilutės duomenų ilgį?

„Expr“, „wc“ ir „Oho“ komandomis galima sužinoti eilutės duomenų ilgį bash. „Išraiška“ ir „Oho“ komandų naudojimas ilgio variantas, „Wc“ komanda naudoja „ - C“ galimybė skaičiuoti eilutės ilgį.

Pavyzdys:

Pirmiau nurodytų komandų naudojimas parodytas šiame scenarijuje.

#!/bin/bash
# Skaičiuokite ilgį naudodami parinktį „expr“ ilgis
išmetė ``išraiškailgio'Man patinka PHP'``
# Skaičiuokite ilgį naudodami komandą „wc“
išmetė 'Man patinka Bašas' | wc -c
# Skaičiuokite ilgį naudodami komandą „awk“
išmetė 'Man patinka Python' | awk „{print length}“

#30. Kaip lygiagrečiai paleisti kelis „bash“ scenarijus?

Keli bash scenarijai gali būti vykdomi lygiagrečiai naudojant nee komandą. Šiame pavyzdyje parodyta, kaip lygiagrečiai galima vykdyti kelis „bash“ failus iš aplanko.

Pavyzdys:

# Priskirkite aplanko pavadinimą keliui kintamajame $ dir, kuriame yra
# keli bash failai
tau='home/Ubuntu/temp'

# for loop skaitys kiekvieną failą iš katalogo ir vykdys lygiagrečiai
dėlscenarijusįtau/ *.sh
daryti
nee mušti '$ scenarijus' &
padaryta

Išvada:

Dauguma pagrindinių „bash“ scenarijaus interviu klausimų yra aprašyti šiame straipsnyje skaitytojams, norintiems pradėti „bash“ programuotojo karjerą.