30 bash forgatókönyv Interjú kérdések és válaszok

30 Bash Script Interview Questions



A Bash scripting egy nagyon hasznos és erőteljes programozási nyelv, amelyet elsősorban kézi feladatok automatizálására használnak. Annak az álláskeresőnek, aki automatizálási tesztelő vagy bash programozó szeretne lenni, néhány gyakori kérdéssel kell szembenéznie az interjúban. A Linuxban különféle típusú parancsfájlok léteznek. Az egyik népszerű és leggyakrabban használt shell szkript a Bourne Again Shell vagy a Bash. Ebben a cikkben 30 fontos interjúkérdést és választ adunk a bash szkriptnyelvre vonatkozóan.

#01. Mi az a bash script?

A bash script egy shell programozási nyelv. Általában sokféle shell parancsot futtatunk a terminálról úgy, hogy minden parancsot külön begépelünk, ami időt és erőfeszítést igényel. Ha ugyanazokat a parancsokat kell újra futtatnunk, akkor az összes parancsot újra kell végrehajtanunk a terminálról. De bash parancsfájl használatával sok shell parancs utasítást tárolhatunk egyetlen bash fájlban, és bármikor végrehajthatjuk a fájlt egyetlen paranccsal. Számos rendszeradminisztrációs feladat, programtelepítés, lemezmentés, naplók kiértékelése stb. Elvégezhető a megfelelő bash parancsfájl használatával.







#02. Milyen előnyökkel jár a bash szkriptek használata?

A Bash script számos előnnyel rendelkezik, amelyeket az alábbiakban ismertetünk:



  • Könnyen használható és tanulható.
  • Sok manuális feladatot, amelyeket gyakran kell futtatni, automatikusan el lehet végezni egy bash szkript írásával.
  • A több shell parancs sorozatát egyetlen paranccsal lehet végrehajtani.
  • Az egyik Linux operációs rendszerben írt Bash szkript könnyen végrehajtható más Linux operációs rendszerekben. Tehát hordozható.
  • A hibakeresés a bash -ban könnyebb, mint más programozási nyelvek.
  • A parancssori szintaxis és a terminálban használt parancsok hasonlóak a bash scriptben használt parancsokhoz és szintaxisokhoz.
  • A Bash szkript más szkriptfájlokkal való összekapcsolásra használható.

#03. Említse meg a bash szkriptek hátrányait

Az alábbiakban felsoroljuk a bash script néhány hátrányát:



  • Lassabban működik, mint más nyelvek.
  • A helytelen szkript károsíthatja az egész folyamatot, és bonyolult hibát okozhat.
  • Nem alkalmas nagy és összetett alkalmazás fejlesztésére.
  • A többi szabványos programozási nyelvhez képest kevesebb adatstruktúrát tartalmaz.

#04. Milyen típusú változókat használnak a bash -ban?

A bash scriptben kétféle változó használható. Ezek:

Rendszerváltozók
A Linux operációs rendszer által előre definiált és karbantartott változókat rendszerváltozóknak nevezzük. Az ilyen típusú változókat mindig egy nagybetű használja. Ezeknek a változóknak az alapértelmezett értékei a követelményeknek megfelelően módosíthatók.

`set`,` env` és ` printenv `parancsokkal kinyomtathatók a rendszerváltozók listája.

Példa:





#!/bin/bash
# Nyomtatási rendszerváltozók

#Print Bash héj neve
kidobta $ BASH

# Print Bash shell verzió
kidobta $ BASH_VERSION

# Nyomtassa ki a Home könyvtár nevét
kidobta $ HOME

Felhasználó által definiált változó

A felhasználók által létrehozott és karbantartott változókat felhasználó által definiált változóknak nevezzük. Ezeket helyi változóknak is nevezik. Az ilyen típusú változókat deklarálni lehet kis- vagy nagybetűvel, vagy mind nagy-, mind kisbetűvel. De jobb elkerülni az összes nagybetű használatát, hogy megkülönböztessük a változókat a rendszerváltozóktól.
Példa:

#!/bin/bash

az egyiken=100
kidobta $ szám

#05. Hogyan lehet deklarálni és törölni a változókat a bash -ban?

A változó bash -ban deklarálható adattípus szerint vagy adattípus nélkül. Ha bármely bash változót anélkül deklarálunk kijelent parancsot, akkor a változót karakterláncként kezeljük. A Bash változót a gombbal deklaráljuk kijelent parancs a változó adattípusának meghatározására az idődeklaráció során.



–R , -i, -a, -A, -l, -u, -t és -X opciók használhatók kijelent parancs egy változó deklarálására különböző adattípusokkal.

Példa:

#!/bin/bash

#Declare változó típus nélkül
az egyiken=10

#Az értékeket egyesíti, de nem adja hozzá
eredmény=$ szám+húsz
kidobta $ eredmény

#Declare változó egész típusú típussal
kijelent -én az egyiken=10

#Értékek hozzáadásra kerülnek
kijelent -én eredmény= szám+húsz
kidobta $ eredmény

nincs beállítva parancs a bash változók eltávolítására szolgál. A változó elérhetetlen vagy nem definiált lesz használat után nincs beállítva parancs.

Példa:

#!/bin/bash

o='Linux tipp'
kidobta $ str
nincs beállítva $ str
kidobta $ str

#06. Hogyan lehet megjegyzéseket hozzáadni egy bash szkripthez?

Egysoros és többsoros megjegyzések használhatók a bash scriptben. ' # 'Szimbólum az egysoros megjegyzéshez használatos. '<<’ szimbólum elválasztóval és ':' az egyszeres (') karakterekkel többsoros megjegyzéseket adhat hozzá.

Példa:

#!/bin/bash
#Nyomtassa ki a szöveget [Egysoros megjegyzés]
kidobta 'Bash programozás'
< Számítsa ki az összeget
Két számból [többsoros megjegyzés]
Megjegyzés hozzáadása

az egyiken=25+35
kidobta $ szám
:'
Kombináljon kettőt
String adatok [többsoros megjegyzés]
'

Húr='Helló'
kidobta $ karakterlánc'Világ'

#07. Hogyan lehet kombinálni a karakterláncokat egy bash szkriptben?

A karakterlánc értékek bash -ban különböző módon kombinálhatók. Általában a karakterláncok értékeit egyesítéssel kombinálják, de a bash -ban más módon is kombinálhatók a karakterlánc -adatok.

Példa:

#!/bin/bash
#Inicializálja a változókat
str1='PHP'
str2='Bash'
str3='Perl'

# Nyomja meg a karakterláncot a szóközzel együtt
kidobta $ str1 $ str2 $ str3

#Kombinálja az összes változót, és tárolja egy másik változóban
o='$ str1,$ str2és$ str3'

#Kombináljon más karakterlánc -adatokat a karakterlánc meglévő értékével
str + ='szkriptnyelv'

#Nyomtassa ki a karakterláncot
kidobta $ str

#08. Milyen parancsokat használnak a kimenet nyomtatására bash -ban?

'visszhang' és `printf` parancsokkal lehet kimenetet nyomtatni bash -ban. `visszhang `parancs az egyszerű kimenet és az `printf` parancs a formázott kimenet nyomtatására szolgál.

Példa:

#!/bin/bash

#Nyomtassa ki a szöveget
kidobta 'Üdvözli a LinuxHint!'
webhely='linuxhint.com'
#Nyomtassa ki a formázott szöveget
printf '%s egy népszerű blogoldal n' $ webhely

#09. Hogyan lehet bemenetet venni a terminálból bash -ban?

`olvasni` parancsot egy bash szkriptben használják a terminálról történő bevitelhez.

Példa:

#!/bin/bash
#Nyomtatási üzenet
kidobta 'Adja meg nevét'
#Vegye be a felhasználó adatait
olvasnév
# Nyomtassa ki a $ name értékét más karakterlánccal
kidobta 'A neved$ név'

#10. Hogyan kell használni a parancssori argumentumokat a bash-ban?

A parancssori érveket olvassa $ 1, $ 2, $ 3… $ n változók. A parancssori argumentumok értékei a terminálban vannak megadva a bash parancsfájl végrehajtásakor. $ 1 az első érv olvasására szolgál, 2 USD a második érv olvasására és így tovább.

Példa:

#!/bin/bash
#Ellenőrizze, hogy vannak -e érvek, vagy sem
ha [[ $ # -eq 0 ]];azután
kidobta - Nincs érv.
kijárat 0
lenni
#Tárolja az első argumentum értékét
szín=$ 1
# Nyomtassa ki az érvet más karakterlánccal
printf 'Kedvenc színed: %s n' $ színű

#11. A bash gyengén gépelt nyelv? Miért?

Igen, a bash gyengén vagy lazán gépelt nyelvnek tekinthető, mert nem igényli az adatok típusának deklarálását a változó deklaráláskor. Alapértelmezés szerint minden bash változót karakterláncként kezel, és a változó típusát az aktuális érték alapján kell beállítani. Az adattípusokkal rendelkező Bash -változókat a segítségével lehet definiálni kijelent parancsot egy adott opcióval. Az adattípusok meghatározására vonatkozó lehetőségek azonban korlátozottak, és nem támogatnak minden típusú adatot. Például, úszó adattípus nem deklarálható a használatával kijelent parancs.

Példa:

#!/bin/bash

#A $ myVar adattípusa alapértelmezés szerint karakterlánc
myVar=29

# Nyomtassa ki a változót
kidobta $ myVar

# A $ number egész változó deklarálása 67 értékkel
kijelent -én szám=67

#Nyomtassa ki a változót
kidobta $ szám

# Rendeljen karakterlánc adatokat a numerikus változóhoz. A következő sor generálja
# szintaktikai hiba, és a $ szám értéke nem változik
szám='Szeretem a bash -t'
kidobta $ szám

#12. Hogyan lehet leolvasni a fájl minden sorából a második szót vagy oszlopot?

A fájl második szava vagy oszlopa egy bash szkriptben olvasható le különböző bash parancsok, például 'awk', 'sed' stb. Használatával. `awk` a következő példában látható.
Példa: Tegyük fel, hogy a course.txt fájl a következő tartalmat tartalmazza, és a fájl minden sorának csak a második szavát nyomtattuk ki.

CSE201 Java programozás
CSE303 adatszerkezet
CSE408 Unix programozás#!/bin/bash
# A következő parancsfájl minden sor második szavát kinyomtatja a course.txt fájlból.
# A cat parancs kimenete átmegy az awk parancsra, amely elolvassa a második szót
minden sor #.
kidobta ``macskatanfolyam.txt| awk '{print $ 2}'``

#13. Hogyan lehet deklarálni és elérni egy tömbváltozót bash -ban?

Mind a numerikus, mind az asszociatív tömböket bash -parancsfájl támogatja. Egy tömbváltozó deklarálható deklaráló paranccsal és anélkül. -nak nek opciót a deklarálás paranccsal használjuk egy numerikus tömb és -NAK NEK opciót a deklaráció utasítással használjuk egy asszociatív tömb definiálásához bash -ban. A deklarációs parancs nélkül a numerikus tömb csak bash -ban definiálható.

Példa:

#!/bin/bash

# Deklaráljon egy egyszerű numerikus tömböt
arr1=(CodeIgniter Laravel ReactJS)

# Nyomtassa ki az $ arr1 első elemértékét
kidobta $ {arr1 [0] {

# Nyilvánítson egy numerikus tömböt a deklarálás paranccsal
kijelent -nak nek arr2=(HTML CSS JavaScript)

# Nyomtassa ki a $ elem2 második elemértékét
kidobta $ {arr2 [1]}

# Deklaráljon asszociatív tömböt a deklarációs utasítás használatával
kijelent -NAK NEK arr3=( [keretrendszer]= Laravel[CMS]= Wordpress[Könyvtár]= JQuery)

# Nyomtassa ki a $ arr3 harmadik elemértékét
kidobta $ {arr3 [Könyvtár]}

Egy tömb minden eleme elérhető bármely hurok vagy „*” szimbólum használatával tömbindexként.

#14. Hogyan használhatók a feltételes utasítások a bash -ban?

A legtöbb programozási nyelvben a leggyakoribb feltételes állítás az az if-elseif-else nyilatkozat. A szintaxisa if-elseif-else A bash utasítás egy kicsit eltér a többi programozási nyelvtől. 'Ha' utasítás kétféleképpen deklarálható bash szkriptben és minden típusban 'ha' blokkot le kell zárni a gombbal 'lenni' . 'ha' az utasítást harmadik zárójel vagy első zárójel határozza meg, mint más programozási nyelvek.

Szintaxis:
NAK NEK.

ha [állapot];
azután
nyilatkozatok
lenni

B.

ha [állapot];azután
nyilatkozatok1
más
nyilatkozat2
lenni

C.

ha [állapot];azután
nyilatkozat1
elif[állapot];azután
nyilatkozat2
….
más
nyilatkozat n
lenni

Példa:

#!/bin/bash

# Rendeljen értéket $ n értékhez
n=30
# Ellenőrizze, hogy $ n nagyobb -e 100 -nál, vagy sem
ha [ $ n -gt 100 ];azután
kidobta '$ nkevesebb, mint 100 '
# Ellenőrizze, hogy a $ n azonosító nagyobb -e 50 -nél
elif [ $ n -gt ötven ];azután
kidobta '$ nkevesebb, mint 50 '
más
kidobta '$ nkevesebb, mint 50 '
lenni

#15. Hogyan lehet összehasonlítani az értékeket bash -ban?

A bash -ban hatféle összehasonlító operátor használható az értékek összehasonlítására. Az adattípustól függően kétféleképpen lehet ezeket az operátorokat bash -ban használni. Ezeket az alábbiakban említjük.

Húr összehasonlítás Egész szám összehasonlítás Leírás
== -eq Az egyenlőség ellenőrzésére szolgál
! = -született Az egyenlőtlenségek ellenőrzésére szolgál
< -lt Ezt akkor használják, ha az első érték kisebb, mint a második, vagy sem
> -gt Ellenőrizze, hogy az első érték nagyobb -e a másodiknál, vagy sem
<= -az Ellenőrizze, hogy az első érték kisebb vagy egyenlő -e a második értékkel, vagy sem
> = -adni Ellenőrizze, hogy az első érték nagyobb vagy egyenlő -e a második értékkel, vagy sem

Példa:

#!/bin/bash
# $ N inicializálása
n=130
vagy='még'
# Ellenőrizze, hogy a $ n nagyobb vagy egyenlő 100 -mal, vagy nem használja a „–ge” értéket.
ha [ $ n -adni 100 ];azután
kidobta '$ nnagyobb vagy egyenlő 100 '
más
kidobta '$ nkevesebb, mint 100 '
lenni
# Ellenőrizze, hogy a $ n páros vagy páratlan -e a „==” operátorral
ha (( $ o=='még' ));azután
kidobta 'Páros a szám'
más
kidobta 'A szám páratlan'
lenni

#16. Melyik feltételes utasítás használható a bash if-elseif-else utasításai helyett?

'ügy' utasítás használható alternatívaként tp if-elseif-if nyilatkozat. A szintaxisa a 'ügy' A bash szkriptekben szereplő utasítás eltér a kapcsolószekrény más programozási nyelvek nyilatkozata. 'ügy' blokk zárva van „Esza” nyilatkozat bash -ban. Nem ' szünet 'Az állítást belül használják' ügy 'Blokk, hogy befejezze a blokkot.

Szintaxis:

ügy ban ben
Egyezési minta1)parancsokat;;
Egyezési minta2)parancsokat;;
……
Egyezési minta n)parancsokat;;
esac

Példa:

#!/bin/bash
#Inicializálja a $ ticket változót
jegy=101
# Hasonlítsa össze a $ jegy értékét a 23 -as, 101 -es és 503 -as értékkel
ügy $ jegy ban ben
2. 3)
# Nyomtassa ki az üzenetet, ha az érték 23
kidobta 'Megkaptad az első díjat';;
101)
# Nyomtassa ki az üzenetet, ha az érték 101
kidobta 'Megkaptad a második díjat';;
503)
# Nyomtassa ki az üzenetet, ha az értéke 503
kidobta 'Megkaptad a harmadik díjat';;
*)
# Nyomtassa ki az üzenetet, ha az érték nem egyezik a 23 -as, 101 -es és 503 -as értékkel
kidobta 'Bocs, próbáld meg legközelebb'
kijárat 0;;
esac

#17. Milyen különböző hurkok használhatók a bash -ban?

A bash szkript háromféle hurkot támogat. Ezek míg, azért és amíg hurkok. A bash -ban lévő hurkok a ciklus elején ellenőrzik az állapotot. Míg ciklus addig működik, amíg a feltétel igaz marad, és amíg ciklus addig működik, amíg a feltétel hamis marad. Kétféle módon lehet használni számára hurok. Az egyik általános számára hurok, amely három részt tartalmaz, és egy másik be hurok. E három ciklus felhasználását a következő példa mutatja be.

Példa:

#!/bin/bash
# $ N inicializálása
n=5
# Számítsa ki az 5-1 négyzetet a while ciklus használatával
míg [ $ n -gt 0 ]
tedd
négyzetméter= $((n*n))
kidobta - A négyzet$ nvan$ sqr'
((n--))
Kész

# Számítsa ki az 5-1 négyzetet a ciklus segítségével
számára (( én=5; én>0; én--))
tedd
négyzetméter= $((én*én))
kidobta - A négyzet$ ivan$ sqr'
Kész

# Inicializálja $ x
x=5

# Számítsa ki az 5-1 négyzetet a ciklus segítségével
amíg [ $ x -az 0 ]
tedd
négyzetméter= $((x*x))
kidobta - A négyzet$ xvan$ sqr'
((x--))
Kész

#18. Hogyan lehet deklarálni és meghívni az alprogramokat bash -ban?

A bash -ban egy függvényt vagy eljárást szubrutinnak neveznek. A bash -ban található alprogram deklarálása és meghívása eltér a többi nyelvtől. Más szabványos programozási nyelvekkel ellentétben egyetlen argumentum sem deklarálható alprogramokban. De a helyi változókat a szubrutinon belül definiálhatjuk a 'helyi' kulcsszó.

Példa:

#!/bin/bash
# Inicializálja a $ x és $ y változókat, amelyek globálisak
x=10
és=35

# Nyújtsa be a funkciót
myFunc() {
# Deklarálja a $ x helyi változót
helyi x=tizenöt

# Rendelje hozzá újra a $ y globális változót
és=25

# Számítsa ki $ x és $ y összegét
Val vel= $((x + y))

# Nyomtassa ki a $ x helyi változó és a $ y globális változó összegét
kidobta - Az összeg$ xés$ yegyenlő$ z'
}

# Hívja fel a funkciót
myFunc

# Nyomtassa ki a globális változók összegét, $ x és $ y
kidobta - Az összeg$ xés$ yegyenlő$ z'

#19. Hogyan lehet kivágni és kinyomtatni egy karakterláncadatok egy részét a bash -ban?

A Bash nem rendelkezik olyan beépített funkcióval, mint más nyelvek, hogy kivágja a karakterlánc-adatok egy részét. De a paraméterbővítés használatával bármilyen karakterlánc értéket le lehet vágni bash -ban. Három rész definiálható a paraméterbővítésben, kettősponttal elválasztva, hogy kivágja a karakterlánc adatainak bármely részét. Itt az első két rész kötelező, az utolsó rész pedig nem kötelező. Az első rész a fő karakterlánc -változót tartalmazza, amelyet a vágáshoz használnak, a második rész a kiindulási pozíció, ahonnan a karakterláncot levágják, a harmadik rész pedig a vágóhúr hossza. A vágási érték lekéréséhez a kiindulási pozíciót 0 -tól kell számolni, a hosszúságot pedig a fő karakterlánc 1 -től.

Példa:

#!/bin/bash
# Inicializálja a karakterlánc értékét $ string -be
húr='Python szkriptnyelv'
# Vágja le a karakterlánc értékét a 7. pozícióból a karakterlánc végére
kidobta $ {string: 7}
# Vágja ki a 9 karakterlánc értékét a 7 -es pozícióból
kidobta $ {string: 7: 9}
# Vágja le a karakterlánc értékét 17 -ről 20 -ra
kidobta $ {string: 17: -4}

#20. Megemlít néhány módszert a számtani műveletek végrehajtására bash -ban?

Az aritmetikai műveletek többféleképpen is elvégezhetők bash -ban. „Let”, „expr”, „bc” és dupla zárójel ezek a leggyakoribb módszerek aritmetikai műveletek végrehajtására bash -ban. Ezen parancsok használatát a következő példa mutatja be.

Példa:

#!/bin/bash
# A kivonás kiszámítása expr és paraméterbővítés segítségével
var1= $( kifejezés 120-100 )
# nyomtassa ki az eredményt
kidobta $ var1
# Számítsa ki az összeadást a let paranccsal
hagyja var2=200+300
# Nyomtassa ki az rsult értéket
kidobta $ var2
# Számítsa ki és nyomtassa ki az osztás értékét a „bc” használatával az eredmény eléréséhez
# tört értékkel
kidobta 'skála = 2; 44/7 ' | időszámításunk előtt
# Számítsa ki a szorzás értékét kettős zárójelekkel
var3= $(( 5*3 ))
# Nyomtassa ki az eredményt
kidobta $ var3

#21. Hogyan lehet ellenőrizni, hogy létezik -e könyvtár, vagy nincs bash?

A Bash számos tesztparancsot tartalmaz annak ellenőrzésére, hogy létezik -e fájl vagy könyvtár, illetve nincs -e a fájl típusa. '-D' opciót a könyvtár elérési útjával együtt használjuk feltételes utasításként annak ellenőrzésére, hogy a könyvtár létezik -e vagy sem bash -ban. Ha a könyvtár létezik, akkor igaz értéket ad vissza, különben hamisat.

Példa:

#!/bin/bash
# Rendelje hozzá a könyvtárat útvonalhoz a $ path változóban
pálya='/home/ubuntu/temp'
# Ellenőrizze, hogy a könyvtár létezik -e vagy sem
ha [ -d '$ elérési út' ];azután
# Nyomtassa ki az üzenetet, ha a könyvtár létezik
kidobta 'A könyvtár létezik'
más
# Nyomtassa ki az üzenetet, ha a könyvtár nem létezik
kidobta 'A könyvtár nem létezik'
lenni

#22. Hogyan lehet megszüntetni a bash szkriptet minden utasítás végrehajtása nélkül?

Használata 'kijárat' parancsot, a bash szkript leállítható az összes utasítás végrehajtása nélkül. A következő parancsfájl ellenőrzi, hogy létezik -e egy adott fájl. Ha a fájl létezik, akkor kinyomtatja a fájl összes karakterét, és ha a fájl nem létezik, akkor egy üzenet megjelenítésével leállítja a szkriptet.

Példa:

#!/bin/bash

# Inicializálja a fájlnevet a $ fájlnév változóba
fájl név='course.txt'

# Ellenőrizze, hogy a fájl létezik -e vagy sem a -f opció használatával
ha [ -f '$ fájlnév' ];azután
# Nyomtassa ki az üzenetet, ha a fájl létezik
kidobta '$ fájlnévlétezik'
más
# Nyomtassa ki az üzenetet, ha a fájl nem létezik
kidobta '$ fájlnévnem létezik'
# Szüntesse meg a szkriptet
kijárat 1
lenni

# Számolja meg a fájl hosszát, ha a fájl létezik
hossz=``WC -c $ fájlnév``

# Nyomtassa ki a fájl hosszát
kidobta 'Összes karakter -$ hosszúságú'

#23. Milyen célokra használhatók a break és folytass nyilatkozatok bash -ban?

szünet utasítás használható a ciklusból történő befejezésre a feltétel és a teljes iteráció befejezése nélkül folytatni utasítás egy ciklusban használatos bizonyos feltételek alapján kihagyni néhány állítást. A felhasználásai szünet és folytatni állításokat a következő példa magyarázza.

Példa:

#!/bin/bash
# Inicializálja a $ i változót 0 -ig a ciklus elindításához
én=0
# a ciklus 10 -szer ismétlődik
míg [ $ i -az 10 ]
tedd
# Növelje $ i értékét 1 -gyel
((i ++))
# Ha az $ i értéke 8, akkor fejezze be a ciklust a 'break' utasítás használatával
ha [ $ i -eq 8 ];azután
szünet;
lenni
# Ha az $ i értéke nagyobb, mint 6, akkor hagyja ki a ciklus utolsó utasítását
# a folytatás utasítás használatával
ha [ $ i -adni 6 ];azután
folytatni;
lenni
kidobta 'i = aktuális értéke$ i'
Kész

# Nyomja ki a $ i értékét, miután befejezte a ciklusból
kidobta 'Most az i értéke =$ i'

#24. Hogyan lehet végrehajtani a bash fájlt?

Futtatható bash fájlok készíthetők a használatával 'Chmod' parancs. A végrehajtható jogosultság a segítségével állítható be '+ X' ban ben chmod parancsot a szkript fájlnevével. A Bash fájlok explicit nélkül is végrehajthatók 'Bash' parancsot a fájl végrehajtási bitjének beállítása után.

Példa:

# Állítsa be a végrehajtási bitet
$chmod+ x fájlnév.sh

# Futtassa a futtatható fájlt
$./fájlnév.sh

#25. Említsen meg néhány lehetőséget a fájlok tesztelésére

A bash -ban számos lehetőség áll rendelkezésre a fájl teszteléséhez. Az alábbiakban néhány lehetőséget említünk.

választási lehetőség Leírás
-f A fájl létezésének tesztelésére szolgál, és rendszeres fájl.
-És Csak a fájl létezésének tesztelésére szolgál.
-r A fájl létezésének tesztelésére szolgál, és olvasási engedéllyel rendelkezik.
-ban ben A fájl létezésének tesztelésére szolgál, és írási jogosultsággal kell rendelkeznie.
-x A fájl létezésének tesztelésére szolgál, és végrehajtási engedéllyel rendelkezik.
-d A könyvtár létezésének tesztelésére szolgál.
-AZ A fájl létezésének tesztelésére szolgál, és szimbolikus link.
-S A fájl létezésének tesztelésére szolgál, és ez egy foglalat.
-b A fájl blokkeszközként való tesztelésére szolgál.
-s Arra szolgál, hogy ellenőrizze, hogy a fájl mérete nem nulla.
-például Annak ellenőrzésére használták, hogy az első fájl tartalma újabb, mint a második. Például a file1 -nt file2 azt jelzi, hogy a file1 újabb, mint a file2.
-nem Azt ellenőrizte, hogy az első fájl tartalma régebbi, mint a második. Például a file1 -ot file2 azt jelzi, hogy a file1 régebbi, mint a file2.
-hús Arra szolgál, hogy ellenőrizze, hogy két merev link hivatkozik -e ugyanarra a fájlra. Például a flink1 -ef flink2 azt jelzi, hogy a flink1 és a flink2 merev linkek, és mindkettő ugyanarra a fájlra hivatkozik.

#26. Mit jelent a „bc” kifejezés, és hogyan használható ez a parancs a bash -ban?

A „bc” teljes formája az Bash számológép hogy pontosabban végezze el az aritmetikai műveleteket bash -ban. A törtrész kimarad, ha bármilyen aritmetikai műveletet bash -ban használunk a használatával „Kifejezés” parancs. A törtrész felhasználásával is kerekíthető skála értékkel 'időszámításunk előtt' parancs.

Példa:

#!/bin/bash
# Számítsa ki az osztást törtérték nélkül
kidobta '39 / 7 ' | időszámításunk előtt

# Számítsa ki az osztást a teljes törtértékkel
kidobta '39 / 7 ' | időszámításunk előtt -az

# Számítsa ki az osztást három számjeggyel a tizedespont után
kidobta 'skála = 3; 39/7 ' | időszámításunk előtt

#27. Hogyan lehet kinyomtatni egy fájl egy sorát bash -ban?

Sokféleképpen nyomtathat egy adott sort bash -ban. Hogy a 'awk', 'sed' és 'farok' parancsok használhatók a fájl egy adott sorának bash -ban történő nyomtatására. A következő példában látható.

Példa:

#!/bin/bash

# Olvassa el és tárolja a fájl első sorát az 'awk' paranccsal NR változóval
sor1=``awk '{if (NR == 1) print $ 0}'tanfolyam.txt``
# Nyomtassa ki a sort
kidobta $ sor1

# Olvassa el a fájl második sorát a `sed` paranccsal a -n opcióval
2. sor=``sed -n2p tanfolyam.txt``
# Nyomtassa ki a sort
kidobta $ sor2

# Olvassa el a fájl utolsó sorát a `tail` paranccsal a -n opcióval
3. sor=``farok -n 1tanfolyam.txt``
# Nyomtassa ki a fájlt
kidobta $ sor3

#28. Mi az IFS?

IFS egy speciális shell változó. A teljes formája IFS belső mező elválasztó,
elválasztóként működik, hogy elválassza a szót a szöveg sorától. Főleg karakterlánc felosztására, parancs olvasására, szöveg cseréjére stb.

Példa:

#!/bin/bash
# A ':' deklarálása határolóként a szöveg felosztásához
IFS=':'
# Rendeljen hozzá szöveges adatokat a ':' jelzéssel a $ szöveghez
szöveg='Piros: Zöld: Kék'
A # for loop minden szót elolvassa, miután a szöveget IFS alapján felosztotta
számáraóraban ben $ szöveg;tedd
# Nyomtassa ki a szót
kidobta $ óra
Kész

#29. Hogyan lehet megtudni egy sztring adat hosszát?

'Expr', 'wc' és 'Awk' parancsok segítségével megtudhatja a karakterláncok hosszát a bash -ban. „Kifejezés” és 'Awk' parancsok használata hossz választási lehetőség, 'WC' parancs használja „–C” lehetőség számítani a karakterlánc hosszát.

Példa:

A fenti parancsok használatát a következő parancsfájl mutatja be.

#!/bin/bash
# Számolja a hosszúságot az 'expr' hosszúság opcióval
kidobta ``kifejezéshossz'Szeretem a PHP -t'``
# Számolja a hosszúságot a `wc` paranccsal
kidobta 'Szeretem Bash -t' | WC -c
# Számolja a hosszúságot az `awk` paranccsal
kidobta 'Szeretem a Python -t' | awk '{print length}'

#30. Hogyan lehet párhuzamosan több bash szkriptet futtatni?

A használatával több bash parancsfájl is futtatható párhuzamosan nohup parancs. A következő példában bemutatjuk, hogyan lehet párhuzamosan több bash fájlt végrehajtani egy mappából.

Példa:

# Rendeljen mappanevet a $ dir változó elérési útjával
# több bash fájl
neked='home/Ubuntu/temp'

A # for loop minden fájlt a könyvtárból olvas és párhuzamosan hajt végre
számáraforgatókönyvban benneked/ *.SH
tedd
nohup bash '$ script' &
Kész

Következtetés:

A legtöbb alapvető bash script interjúkérdést ebben a cikkben írjuk le azoknak az olvasóknak, akik bash programozói karriert szeretnének kezdeni.