30 bash script Mga katanungan at sagot sa panayam

30 Bash Script Interview Questions



Ang Bash scripting ay isang napaka-kapaki-pakinabang at malakas na wika ng programa na pangunahing ginagamit upang makagawa ng anumang manu-manong gawain na awtomatiko. Ang isang jobseeker na nais na maging isang automation tester o bash programmer ay kailangang harapin ang ilang mga karaniwang katanungan sa pakikipanayam. Mayroong iba't ibang mga uri ng mga script ng shell sa Linux. Ang isa sa mga tanyag at kadalasang ginagamit na mga script ng shell ay ang Bourne Again Shell o Bash. 30 mahahalagang katanungan at sagot sa panayam sa wikang bash scripting ay inilarawan sa artikulong ito upang maghanda para sa trabaho.

# 01. Ano ang bash script?

Ang bash script ay isang wikang shell programming. Pangkalahatan, nagpapatakbo kami ng maraming uri ng mga command ng shell mula sa terminal sa pamamagitan ng pag-type nang hiwalay sa bawat utos na nangangailangan ng oras at pagsisikap. Kung kailangan nating patakbuhin muli ang parehong mga utos pagkatapos ay kailangan nating ipatupad muli ang lahat ng mga utos mula sa terminal. Ngunit gamit ang isang bash script, maaari naming maiimbak ang maraming mga pahayag ng command ng shell sa isang solong bash file at ipatupad ang file anumang oras sa pamamagitan ng isang solong utos. Maraming mga gawain na nauugnay sa pangangasiwa ng system, pag-install ng programa, pag-backup ng disk, pagsusuri ng mga tala, atbp. Ay maaaring gawin sa pamamagitan ng paggamit ng wastong bash script.







# 02. Ano ang mga bentahe ng paggamit ng bash script?

Ang Bash script ay may maraming kalamangan na inilalarawan sa ibaba:



  • Madaling gamitin at matuto.
  • Maraming mga manu-manong gawain na kailangang tumakbo nang madalas ay maaaring awtomatikong magawa sa pamamagitan ng pagsulat ng isang bash script.
  • Ang pagkakasunud-sunod ng maraming mga utos ng shell ay maaaring maipatupad ng isang solong utos.
  • Ang script ng Bash na nakasulat sa isang operating system ng Linux ay madaling maisagawa sa iba pang operating system ng Linux. Kaya, ito ay portable.
  • Ang pag-debug sa bash ay mas madali kaysa sa iba pang mga wika ng programa.
  • Ang command-line syntax at mga utos na ginagamit sa terminal ay pareho sa mga utos at syntax na ginamit sa bash script.
  • Maaaring gamitin ang Bash script upang mag-link sa iba pang mga file ng script.

# 03. Nabanggit ang mga kawalan ng bash script

Ang ilang mga kawalan ng bash script ay nabanggit sa ibaba:



  • Gumagawa ito ng mas mabagal kaysa sa ibang mga wika.
  • Ang hindi tamang script ay maaaring makapinsala sa buong proseso at makabuo ng isang kumplikadong error.
  • Hindi ito angkop para sa pagbuo ng isang malaki at kumplikadong aplikasyon.
  • Naglalaman ito ng mas kaunting istraktura ng data na ihambing sa iba pang karaniwang mga wika sa pagprograma.

# 04. Anong mga uri ng variable ang ginagamit sa bash?

Dalawang uri ng mga variable ay maaaring magamit sa bash script. Ito ang:

Mga variable ng system
Ang mga variable na paunang natukoy at pinananatili ng operating system ng Linux ay tinatawag na mga variable ng system. Ang ganitong uri ng mga variable ay laging ginagamit ng isang malalaking titik. Ang mga default na halaga ng mga variable na ito ay maaaring mabago batay sa mga kinakailangan.

`set`,` env` at ` printenv Ang `mga utos ay maaaring magamit upang mai-print ang listahan ng mga variable ng system.

Halimbawa:





#! / baseng / bash
# Mga Variable ng System ng Pag-print

#Print Bash pangalan ng shell
itinapon $ BASH

# I-print ang Bersyon ng Bash shell
itinapon $ BASH_VERSION

# I-print ang pangalan ng direktoryo ng Home
itinapon $ HOME

Variable na tinukoy ng gumagamit

Ang mga variable na nilikha at pinapanatili ng mga gumagamit ay tinatawag na variable na tinukoy ng gumagamit. Tinatawag din silang mga lokal na variable. Ang mga uri ng variable na ito ay maaaring ideklara sa pamamagitan ng paggamit ng maliliit o maliliit o kapwa malalaki at maliliit na titik. Ngunit mas mahusay na iwasan ang paggamit ng lahat ng malalaking titik upang maiiba ang mga variable mula sa mga variable ng system.
Halimbawa:

#! / baseng / bash

sa isa=100
itinapon $ num

# 05. Paano ideklara at tanggalin ang mga variable sa bash?

Ang variable ay maaaring ideklara sa bash sa pamamagitan ng uri ng data o walang uri ng data. Kung ang anumang bash variable ay idineklara nang wala magpahayag utos, pagkatapos ay ang variable ay tratuhin bilang isang string. Ang variable ng Bash ay idineklara ng magpahayag utos na tukuyin ang uri ng data ng variable sa pagdedeklara ng oras.



–R , -i, -a, -A, -l, -u, -t at –X pagpipilian ay maaaring magamit sa magpahayag utos na ideklara ang isang variable na may iba't ibang mga uri ng data.

Halimbawa:

#! / baseng / bash

#Declare variable nang walang anumang uri
sa isa=10

Ang #Values ​​ay pagsamahin ngunit hindi idagdag
resulta=$ num+dalawampu
itinapon $ resulta

#Declare variable na may uri ng integer
magpahayag -ako sa isa=10

#Mga idaragdag na mga halaga
magpahayag -ako resulta= num +dalawampu
itinapon $ resulta

i-unset ginagamit ang utos upang alisin ang anumang bash variable. Ang variable ay hindi maa-access o hindi natukoy pagkatapos magamit i-unset utos

Halimbawa:

#! / baseng / bash

p='Pahiwatig ng Linux'
itinapon $ str
i-unset $ str
itinapon $ str

# 06. Paano magdagdag ng mga komento sa isang bash script?

Ang mga solong linya at multi-line na komento ay maaaring magamit sa bash script. ‘ # Ginagamit ang simbolo na ‘para sa solong-linya na komento. '<<’ simbolo na may isang delimiter at ‘:’ na may solong (‘) ay ginagamit para sa pagdaragdag ng multi-line na komento.

Halimbawa:

#! / baseng / bash
#I-print ang teksto [Single line comment]
itinapon 'Bash Programming'
< Kalkulahin ang kabuuan
Sa dalawang numero [multiline comment]
pagdaragdag

sa isa=25+35
itinapon $ num
:'
Pagsamahin ang dalawa
String data [multiline comment]
'

String='Kamusta'
itinapon $ string'Mundo'

# 07. Paano mo pagsamahin ang mga string sa isang bash script?

Ang mga halaga ng string ay maaaring pagsamahin sa bash sa iba't ibang paraan. Karaniwan, ang mga halaga ng string ay pinagsama sa pamamagitan ng pagsasama ngunit may iba pang mga paraan sa bash upang pagsamahin ang data ng string.

Halimbawa:

#! / baseng / bash
#Initialize ang mga variable
str1='PHP'
str2='Bash'
str3='Perl'

# I-print ang string kasama ang espasyo
itinapon $ str1 $ str2 $ str3

# Pagsamahin ang lahat ng mga variable at iimbak sa isa pang variable
p='$ str1,$ str2at$ str3'

# Pagsamahin ang iba pang data ng string na may umiiral na halaga ng string
str + ='ay mga wika ng pag-script'

#I-print ang string
itinapon $ str

# 08. Aling mga utos ang ginagamit upang mai-print ang output sa bash?

`echo` at `printf` Ang mga utos ay maaaring magamit upang mai-print ang output sa bash. `echo Ginagamit ang `utos upang mai-print ang simpleng output at `printf` ginagamit ang utos upang mai-print ang naka-format na output.

Halimbawa:

#! / baseng / bash

#I-print ang teksto
itinapon 'Maligayang pagdating sa LinuxHint'
lugar='linuxhint.com'
#I-print ang na-format na teksto
printf Ang '% s ay isang tanyag na blog site n' $ site

# 09. Paano kumuha ng input mula sa terminal sa bash?

`basahin` Ang utos ay ginagamit sa isang bash script upang kumuha ng input mula sa terminal.

Halimbawa:

#! / baseng / bash
#Print na mensahe
itinapon 'Ipasok ang iyong pangalan'
#Kumuha ng input mula sa gumagamit
basahinpangalan
# I-print ang halaga ng $ pangalan sa iba pang mga string
itinapon 'Ang iyong pangalan ay$ pangalan'

# 10. Paano gamitin ang mga argumento ng command-line sa bash?

Ang mga argumento sa linya ng utos ay binabasa ng $ 1, $ 2, $ 3… $ n variable. Ang mga halaga ng argument ng linya ng utos ay ibinibigay sa terminal kapag isinasagawa ang script ng bash. $ 1 ay ginagamit upang basahin ang unang argumento, $ 2 ay ginagamit upang basahin ang pangalawang argumento at iba pa.

Halimbawa:

#! / baseng / bash
# Suriin ang anumang argumento na ibinigay o hindi
kung [[ $ # -eq 0 ]];tapos
itinapon 'Walang pagtatalo ang ibinigay.'
labasan 0
maging
#Tindahan ang unang halaga ng argument
kulay=$ 1
# I-print ang argument sa iba pang mga string
printf 'Ang iyong paboritong kulay ay% s n' $ kulay

# 11. Ang bash ay isang mahinang na-type na wika? Bakit?

Oo, ang bash ay itinuturing na isang mahina o maluwag na na-type na wika dahil hindi ito kinakailangan upang ideklara ang uri ng data sa oras ng variable na deklarasyon. Ang lahat ng mga bash variable ay itinuturing bilang isang string bilang default at ang uri ng variable ay maitatakda batay sa kasalukuyang halaga. Ang mga variable ng Bash na may mga uri ng data ay maaaring tukuyin sa pamamagitan ng paggamit magpahayag utos na may isang partikular na pagpipilian. Ngunit ang mga pagpipilian upang tukuyin ang mga uri ng data ay limitado at hindi sinusuportahan ang lahat ng uri ng data. Halimbawa, lumutang ang uri ng data ay hindi maaaring ideklara sa pamamagitan ng paggamit magpahayag utos

Halimbawa:

#! / baseng / bash

#Ang uri ng data ng $ myVar ay string bilang default
myVar=29

# I-print ang variable
itinapon $ myVar

# Ideklara ang variable ng integer na $ number na may halagang 67
magpahayag -ako numero=67

#I-print ang variable
itinapon $ number

# Magtalaga ng data ng string sa variable ng bilang. Ang sumusunod na linya ay bubuo
# error sa syntax at ang halaga ng $ number ay hindi magbabago
numero='Gusto ko bash'
itinapon $ number

# 12. Paano basahin ang pangalawang salita o haligi mula sa bawat linya ng isang file?

Ang pangalawang salita o haligi ng isang file ay maaaring mabasa sa isang bash script sa pamamagitan ng paggamit ng iba't ibang mga bash command madali, tulad ng `awk`,` sed` atbp Dito, ang paggamit ng `awk` ay ipinakita sa sumusunod na halimbawa.
Halimbawa: Ipagpalagay, ang file ng course.txt ay naglalaman ng sumusunod na nilalaman at nai-print lamang namin ang pangalawang salita ng bawat linya ng file na ito.

CSE201 Java Programming
Istraktura ng Data ng CSE303
CSE408 Unix Programming#! / baseng / bash
# Ang sumusunod na script ay mai-print ang pangalawang salita ng bawat linya mula sa course.txt file.
# ang output ng utos ng pusa ay magpapasa sa awk na utos na magbasa sa ikalawang salita
# ng bawat linya.
itinapon 'pusakurso.txt| ang awkward '{print $ 2}''

# 13. Paano ideklara at ma-access ang isang variable ng array sa bash?

Ang parehong mga numerong at nauugnay na mga array ay sinusuportahan ng isang bash script. Ang isang variable ng array ay maaaring ideklara na may at walang idineklarang utos. -sa Ginagamit ang pagpipilian sa ideklarang utos upang tukuyin ang isang numerong array at -TO Ginagamit ang pagpipilian sa ideklarang pahayag upang tukuyin ang isang nauugnay na array sa bash. Nang walang idineklarang utos, ang numerong array ay maaaring tukuyin lamang sa bash.

Halimbawa:

#! / baseng / bash

# Ipahayag ang isang simpleng array ng bilang
arr1=(CodeIgniter Laravel ReactJS)

# I-print ang unang halaga ng elemento ng $ arr1
itinapon $ {arr1 [0] {

# Ideklara ang isang numerong array gamit ang ideklarang utos
magpahayag -sa arr2=(HTML CSS JavaScript)

# I-print ang pangalawang halaga ng elemento ng $ arr2
itinapon $ {arr2 [1]}

# Ideklara ang isang kaugnay na array gamit ang ideklarang pahayag
magpahayag -TO arr3=( [balangkas]= Laravel[CMS]= Wordpress[Library]= JQuery)

# I-print ang pangatlong halaga ng elemento ng $ arr3
itinapon $ {arr3 [Library]}

Maaaring ma-access ang lahat ng mga elemento ng isang array sa pamamagitan ng paggamit ng anumang simbolo ng loop o ‘*’ bilang isang index ng array.

# 14. Paano magagamit ang mga kondisyong pahayag sa bash?

Ang pinakakaraniwang kondisyong pahayag sa karamihan ng mga wika sa pagprograma ay ang if-elseif-iba pa pahayag. Ang syntax ng kung -sa kung hindi man ang pahayag sa bash ay medyo naiiba mula sa iba pang mga wika ng programa. 'Kung' pahayag ay maaaring ideklara sa dalawang paraan sa isang bash script at bawat uri ng 'Kung' block ay dapat na sarado sa 'maging' . 'Kung' ang pahayag ay maaaring tukuyin sa pamamagitan ng pangatlong mga braket o mga unang braket tulad ng ibang mga wika sa pagprograma.

Syntax:
SA.

kung [kalagayan];
tapos
pahayag
maging

B.

kung [kalagayan];tapos
pahayag1
iba pa
pahayag2
maging

C.

kung [kalagayan];tapos
pahayag1
elif[kalagayan];tapos
pahayag2
....
iba pa
pahayag n
maging

Halimbawa:

#! / baseng / bash

# Magtalaga ng isang halaga sa $ n
n=30
# Suriin ang $ n ay higit sa 100 o hindi
kung [ $ n -gt 100 ];tapos
itinapon '$ nay mas mababa sa 100 '
# Suriin ang $ n id na higit sa 50 o hindi
elif [ $ n -gt limampu ];tapos
itinapon '$ nay mas mababa sa 50 '
iba pa
itinapon '$ nay mas mababa sa 50 '
maging

# 15. Paano ihambing ang mga halaga sa bash?

Anim na uri ng mga operator ng paghahambing ay maaaring magamit sa bash upang ihambing ang mga halaga. Mayroong dalawang paraan upang magamit ang mga operator na ito sa bash depende sa uri ng data. Ito ay nabanggit sa ibaba.

Paghahambing sa String Integer Comarison Paglalarawan
== -eq Ginagamit ito upang suriin ang pagkakapantay-pantay
! = -nanganak Ginagamit ito upang suriin ang hindi pagkakapantay-pantay
< -lt Ginamit ito suriin ang unang halaga ay mas mababa sa pangalawang halaga o hindi
> -gt Ginamit ito suriin ang unang halaga ay mas malaki kaysa sa pangalawang halaga o hindi
<= -ang Ginamit ito suriin ang unang halaga ay mas mababa sa o katumbas ng pangalawang halaga o hindi
> = -give Ginamit ito suriin ang unang halaga ay mas malaki kaysa sa o katumbas ng pangalawang halaga o hindi

Halimbawa:

#! / baseng / bash
# Ipasimula ang $ n
n=130
o='kahit'
# Suriin ang $ n ay mas malaki sa o katumbas ng 100 o hindi gumagamit ng ‘–ge’.
kung [ $ n -give 100 ];tapos
itinapon '$ nay higit sa o katumbas ng 100 '
iba pa
itinapon '$ nay mas mababa sa 100 '
maging
Ang # Suriin ang $ n ay pantay o kakaiba gamit ang operator na '=='
kung (( $ o=='kahit' ));tapos
itinapon 'Ang bilang ay pantay'
iba pa
itinapon 'Ang numero ay kakaiba'
maging

# 16. Aling mga kondisyonal na pahayag ang maaaring magamit bilang isang kahalili sa kung-elseif-else na pahayag sa bash?

'Kaso' pahayag ay maaaring magamit bilang isang kahalili tp if-elseif-kung pahayag. Ang syntax para sa 'Kaso' pahayag sa bash script ay naiiba mula sa switch-case pahayag ng iba pang mga wika ng programa. 'Kaso' ang block ay sarado ng 'Esac' pahayag sa bash. Hindi ' pahinga ‘Pahayag ay ginagamit sa loob ng‘ kaso 'Block upang wakasan mula sa bloke.

Syntax:

kaso sa
Pattern ng pagtutugma1)utos;;
Pattern ng pagtutugma2)utos;;
……
Parehong pattern n)utos;;
esac

Halimbawa:

#! / baseng / bash
#Initialize ang variable na $ ticket
ticket=101
# Ihambing ang halaga ng $ ticket sa 23, 101 at 503
kaso $ ticket sa
2. 3)
# I-print ang mensahe kung ang halaga ay 23
itinapon 'Nakuha mo ang unang gantimpala';;
101)
# I-print ang mensahe kung ang halaga ay 101
itinapon 'Nakuha mo ang pangalawang premyo';;
503)
# I-print ang mensahe kung ang halaga ay 503
itinapon 'Nakuha mo ang pangatlong gantimpala';;
*)
# I-print ang mensahe kung ang halaga ay hindi tugma sa 23, 101 at 503
itinapon 'Paumanhin, subukan sa susunod'
labasan 0;;
esac

# 17. Anong iba't ibang mga uri ng mga loop ang maaaring magamit sa bash?

Tatlong uri ng mga loop ang sinusuportahan ng isang bash script. Ito ay habang, para sa at hanggang sa mga loop Ang mga loop sa bash suriin ang kondisyon sa simula ng loop. Habang gumagana ang loop hanggang ang kondisyon ay mananatiling totoo at hanggang sa gumagana ang loop hanggang ang kondisyon ay mananatiling hindi totoo. Mayroong dalawang paraan upang magamit para sa loop Ang isa ay pangkalahatan para sa loop na naglalaman ng tatlong bahagi at isa pa ay para sa loop Ang mga paggamit ng tatlong mga loop ay ipinapakita sa sumusunod na halimbawa.

Halimbawa:

#! / baseng / bash
# Ipasimula ang $ n
n=5
# Kalkulahin ang parisukat ng 5-1 gamit ang habang loop
habang [ $ n -gt 0 ]
gawin
sqr= $((n*n))
itinapon 'Ang parisukat ng$ nay$ sqr'
((n--))
tapos na

# Kalkulahin ang parisukat ng 5-1 gamit ang para sa loop
para sa (( ako=5; ako>0; i--))
gawin
sqr= $((ako*ako))
itinapon 'Ang parisukat ng$ iay$ sqr'
tapos na

# Ipasimula ang $ x
x=5

# Kalkulahin ang parisukat ng 5-1 gamit hanggang sa loop
hanggang sa [ $ x -ang 0 ]
gawin
sqr= $((x*x))
itinapon 'Ang parisukat ng$ xay$ sqr'
((x--))
tapos na

# 18. Paano ideklara at matawag sa bash ang mga subroutine?

Sa bash ang isang pagpapaandar o pamamaraan ay tinatawag na isang subroutine. Ang deklarasyon at pagtawag ng isang subroutine sa bash ay naiiba mula sa ibang mga wika. Walang pagtatalo ang maaaring ideklara sa mga subroutine hindi katulad ng iba pang mga karaniwang wika ng programa. Ngunit ang mga lokal na variable ay maaaring tukuyin sa loob ng subroutine sa pamamagitan ng paggamit ng 'lokal' keyword.

Halimbawa:

#! / baseng / bash
# Ipasimula ang variable na $ x at $ y na pandaigdigan
x=10
at=35

# Ipahayag ang pagpapaandar
myFunc() {
# Ipahayag ang lokal na variable na $ x
lokal x=labinlimang

# Muling italaga ang pandaigdigang variable na $ y
at=25

# Kalkulahin ang kabuuan ng $ x at $ y
Kasama si= $((x + y))

# I-print ang kabuuan ng isang lokal na variable, $ x, at pandaigdigang variable, $ y
itinapon 'Ang kabuuan ng$ xat$ ykatumbas ng$ z'
}

# Tumawag sa pagpapaandar
myFunc

# I-print ang kabuuan ng mga pandaigdigang variable, $ x, at $ y
itinapon 'Ang kabuuan ng$ xat$ ykatumbas ng$ z'

# 19. Paano i-cut at i-print ang ilang bahagi ng isang data ng string sa bash?

Ang Bash ay walang built-in na function tulad ng ibang mga wika upang mabawasan ang ilang bahagi ng data ng string. Ngunit ang paggamit ng pagpapalawak ng parameter ng anumang halaga ng string ay maaaring i-cut sa bash. Tatlong bahagi ang maaaring tukuyin sa pagpapalawak ng parameter sa pamamagitan ng paghihiwalay sa isang colon upang maputol ang anumang bahagi ng data ng string. Dito, ang unang dalawang bahagi ay sapilitan at ang huling bahagi ay opsyonal. Naglalaman ang unang bahagi ng pangunahing variable ng string na gagamitin upang i-cut, ang pangalawang bahagi ay ang panimulang posisyon mula sa kung saan mapuputol ang string at ang pangatlong bahagi ay ang haba ng cutting string. Ang panimulang posisyon ay dapat na mabibilang mula sa 0 at ang haba ay dapat na mabibilang mula sa 1 ng pangunahing string upang makuha ang halaga ng paggupit.

Halimbawa:

#! / baseng / bash
# Ipasimula ang isang halaga ng string sa $ string
lubid='Wika ng Scripting ng Python'
# Gupitin ang halaga ng string mula sa posisyon 7 hanggang sa dulo ng string
itinapon $ {string: 7}
# Gupitin ang halaga ng string ng 9 na mga character mula sa posisyon na 7
itinapon $ {string: 7: 9}
# Gupitin ang halaga ng string mula 17 hanggang 20
itinapon $ {string: 17: -4}

# 20. Nabanggit ang ilang mga paraan upang maisagawa ang mga pagpapatakbo ng arithmetic sa bash?

Ang mga pagpapatakbo ng aritmetika ay maaaring gawin sa maraming paraan sa pag-bash. 'Let', 'expr', 'bc' at dobleng braket ay ang pinaka-karaniwang paraan upang maisagawa ang mga pagpapatakbo ng arithmetic sa bash. Ang mga paggamit ng mga utos na ito ay ipinapakita sa sumusunod na halimbawa.

Halimbawa:

#! / baseng / bash
# Kinakalkula ang pagbabawas sa pamamagitan ng paggamit ng expr at pagpapalawak ng parameter
var1= $( expr 120-100 )
# i-print ang resulta
itinapon $ var1
# Kalkulahin ang karagdagan sa pamamagitan ng paggamit ng hayaan ang utos
hayaan var2=200+300
# I-print ang rsult
itinapon $ var2
# Kalkulahin at i-print ang halaga ng paghahati gamit ang 'bc' upang makuha ang resulta
# na may praksyonal na halaga
itinapon 'scale = 2; 44/7 ' | bc
# Kalkulahin ang halaga ng pagpaparami gamit ang dobleng mga braket
var3= $(( 5*3 ))
# I-print ang resulta
itinapon $ var3

# 21. Paano suriin ang isang direktoryo na mayroon o hindi gumagamit ng bash?

Maraming mga utos sa pagsubok ang Bash upang suriin kung mayroon bang isang file o direktoryo o hindi at ang uri ng file. ‘-D’ Ginagamit ang pagpipilian sa isang path ng direktoryo bilang isang kondisyon na pahayag upang suriin kung mayroon ang direktoryo o hindi sa bash. Kung umiiral ang direktoryo, pagkatapos ay magbabalik ito ng totoo kung hindi man ay magbabalik ito ng hindi totoo.

Halimbawa:

#! / baseng / bash
# Italaga ang direktoryo na may path sa variable, $ path
landas='/ home / ubuntu / temp'
# Suriin ang direktoryo na mayroon o hindi
kung [ -d '$ landas' ];tapos
# I-print ang mensahe kung mayroon ang direktoryo
itinapon 'Umiiral ang direktoryo'
iba pa
# I-print ang mensahe kung wala ang direktoryo
itinapon 'Wala ang direktoryo'
maging

# 22. Paano magwawakas ang isang bash script nang hindi isinasagawa ang lahat ng mga pahayag?

Gamit 'Exit' utos, ang isang bash script ay maaaring wakasan nang hindi isinasagawa ang lahat ng mga pahayag. Susuriin ng sumusunod na script kung may isang partikular na file na mayroon o hindi. Kung ang file ay mayroon, mai-print nito ang kabuuang mga character ng file at kung ang file ay hindi mayroon pagkatapos ay wakasan nito ang script sa pamamagitan ng pagpapakita ng isang mensahe.

Halimbawa:

#! / baseng / bash

# Ipasimula ang filename sa variable, $ filename
filename='course.txt'

# Suriin ang file na mayroon o hindi sa pamamagitan ng paggamit ng -f na pagpipilian
kung [ -f '$ filename' ];tapos
# I-print ang mensahe kung mayroon ang file
itinapon '$ filenameumiiral '
iba pa
# I-print ang mensahe kung walang file
itinapon '$ filenameHindi totoo'
# Tapusin ang script
labasan 1
maging

# Bilangin ang haba ng file kung mayroon ang file
haba='wc -c $ filename'

# I-print ang haba ng file
itinapon 'Kabuuang mga character -$ haba'

# 23. Ano ang mga gamit ng pahinga at magpatuloy na mga pahayag sa bash?

pahinga ginamit ang pahayag upang wakasan mula sa isang loop nang hindi kumpletuhin ang buong pag-ulit batay sa isang kundisyon at magpatuloy ginamit ang pahayag sa isang loop upang alisin ang ilang mga pahayag batay sa isang kundisyon. Ang gamit ng pahinga at magpatuloy ang mga pahayag ay ipinaliwanag sa sumusunod na halimbawa.

Halimbawa:

#! / baseng / bash
# Ipasimula ang variable na $ i hanggang 0 upang simulan ang loop
ako=0
# ang loop ay paulit-ulit fot 10 beses
habang [ $ i -ang 10 ]
gawin
# Palakihin ang halagang $ i ng 1
((ako ++))
# Kung ang halaga ng $ i katumbas ng 8 pagkatapos ay wakasan ang loop sa pamamagitan ng paggamit ng pahayag na 'break'
kung [ $ i -eq 8 ];tapos
pahinga;
maging
# Kung ang halaga ng $ i ay higit sa 6 pagkatapos alisin ang huling pahayag ng loop
# sa pamamagitan ng paggamit ng pagpapatuloy na pahayag
kung [ $ i -give 6 ];tapos
magpatuloy;
maging
itinapon 'ang kasalukuyang halaga ng i =$ i'
tapos na

# I-print ang halagang $ i matapos ang pagwawakas mula sa loop
itinapon 'Ngayon ang halaga ng i =$ i'

# 24. Paano magagawa ang isang bash file na maipapatupad?

Ang naisasagawa na mga bash file ay maaaring gawin sa pamamagitan ng paggamit 'Chmod' utos Maaaring maisagawa ang pahintulot na maisasagawa sa pamamagitan ng paggamit '+ X' sa chmod utos gamit ang filename ng script. Maaaring maisagawa ang mga Bash file nang walang malinaw 'Bash' utos pagkatapos itakda ang bit ng pagpapatupad para sa file na iyon.

Halimbawa:

# Itakda ang bit ng pagpapatupad
$chmod+ x filename.sh

# Patakbuhin ang maipapatupad na file
$./filename.sh

# 25. Nabanggit ang ilang mga pagpipilian na ginagamit upang subukan ang mga file

Maraming mga pagpipilian ang magagamit sa bash upang subukan ang file. Ang ilang mga pagpipilian ay nabanggit sa ibaba.

Pagpipilian Paglalarawan
-f Ginagamit ito upang subukan ang pagkakaroon ng file at ito ay isang regular na file.
-At Ginagamit ito upang subukan ang file ay mayroon lamang.
-r Ginagamit ito upang subukan ang pagkakaroon ng file at nagbasa ito ng pahintulot.
-sa Ginagamit ito upang subukan ang pagkakaroon ng file at kailangang magsulat ng pahintulot.
-x Ginagamit ito upang subukan ang pagkakaroon ng file at mayroon itong pahintulot sa pagpapatupad.
-d Ginagamit ito upang subukan ang umiiral na direktoryo.
-YAN Ginagamit ito upang subukan ang file na mayroon at Ito ay isang simbolikong link.
-S Ginagamit ito upang subukan ang file na mayroon at Ito ay isang socket.
-b Ginagamit ito upang subukan ang file ay isang block device.
-s Ginagamit ito upang suriin ang file ay hindi zero na laki.
-e.g Ginamit nito upang suriin ang nilalaman ng unang file na mas bago kaysa sa pangalawang file. Halimbawa, ang file1 -nt file2 ay nagpapahiwatig na ang file1 ay mas bago kaysa sa file2.
-hindi na Ginamit nito upang suriin ang nilalaman ng unang file na mas matanda kaysa sa pangalawang file. Halimbawa, file1 -ot file2 ay nagpapahiwatig na ang file1 ay mas matanda kaysa sa file2.
-ef Ginagamit ito upang suriin na ang dalawang matitigas na link ay tumutukoy sa parehong file. Halimbawa, ipinahiwatig ng flink1 -ef flink2 na ang flink1 at flink2 ay matitigas na mga link at kapwa tumutukoy sa parehong file.

# 26. Ano ang ibig sabihin ng 'bc' at paano magagamit ang utos na ito sa bash?

Ang buong anyo ng 'bc' ay Bash Calculator upang maisagawa ang mga pagpapatakbo ng aritmetika nang mas tumpak sa bash. Ang bahagi ng praksyonal ay tinanggal kung ang anumang operasyon sa arithmetic ay tapos na sa bash sa pamamagitan ng paggamit 'Expr' utos Ang bahagi ng praksyonal ay maaaring bilugan din sa pamamagitan ng paggamit sukatan halaga sa 'Bc' utos

Halimbawa:

#! / baseng / bash
# Kalkulahin ang paghahati nang walang halaga ng praksyonal
itinapon '39 / 7 ' | bc

# Kalkulahin ang paghahati gamit ang buong halaga ng praksyonal
itinapon '39 / 7 ' | bc -ang

# Kalkulahin ang dibisyon sa tatlong mga digit pagkatapos ng decimal point
itinapon 'scale = 3; 39/7 ' | bc

# 27. Paano mo mai-print ang isang partikular na linya ng isang file sa bash?

Maraming mga paraan upang mag-print ng isang partikular na linya sa bash. Paano ang 'awk', 'sed' at 'Buntot' Ang mga utos ay maaaring magamit upang mai-print ang isang partikular na linya ng isang file sa bash ay ipinapakita sa sumusunod na halimbawa.

Halimbawa:

#! / baseng / bash

# Basahin at itago ang unang linya mula sa file sa pamamagitan ng paggamit ng `awk` na utos na may variable na NR
linya1='ang awkward '{kung (NR == 1) mag-print ng $ 0}'kurso.txt'
# I-print ang linya
itinapon $ linya1

# Basahin ang pangalawang linya mula sa file sa pamamagitan ng paggamit ng `sed` command na may -n pagpipilian
linya2='sed -n2p course.txt'
# I-print ang linya
itinapon $ linya2

# Basahin ang huling linya mula sa file sa pamamagitan ng paggamit ng `buntot` na utos na may -n pagpipilian
linya3='buntot -n 1kurso.txt'
# I-print ang file
itinapon $ line3

# 28. Ano ang IFS?

IFS ay isang espesyal na variable ng shell. Ang buong anyo ng IFS Separator ng Panloob na Patlang,
gumaganap ito bilang delimiter upang paghiwalayin ang salita mula sa linya ng teksto. Pangunahin itong ginagamit para sa paghahati ng isang string, pagbabasa ng isang utos, pagpapalit ng teksto atbp.

Halimbawa:

#! / baseng / bash
# Declare ':' bilang delimiter para sa paghahati ng teksto
IFS=':'
# Magtalaga ng data ng teksto na may ':' hanggang $ text
text='Pula: berde: Asul'
Basahin ng # para sa loop ang bawat salita pagkatapos na hatiin ang teksto batay sa IFS
para saorassa $ text;gawin
# I-print ang salita
itinapon $ oras
tapos na

# 29. Paano malalaman ang haba ng isang data ng string?

'Expr', 'wc' at 'Awk' maaaring magamit ang mga utos upang malaman ang haba ng isang data ng string sa bash. 'Expr' at 'Awk' paggamit ng mga utos haba pagpipilian, 'Wc' gumagamit ng utos ‘–C’ pagpipilian upang mabilang ang haba ng string.

Halimbawa:

Ang mga gamit ng mga utos sa itaas ay ipinapakita sa sumusunod na script.

#! / baseng / bash
# Bilangin ang haba gamit ang pagpipiliang haba ng `expr`
itinapon 'exprhaba'Gusto ko ng PHP''
# Bilangin ang haba gamit ang utos ng `wc`
itinapon 'Gusto ko si Bash' | wc -c
# Bilangin ang haba gamit ang utos ng `awk`
itinapon 'Gusto ko ng Python' | ang awkward '{haba ng pag-print}'

# 30. Paano magpatakbo ng maraming bash script nang kahanay?

Maaaring maisagawa ang maramihang mga bash script nang kahanay sa pamamagitan ng paggamit nohup utos Kung paano maraming mga bash file ang maaaring maipatupad nang kahanay mula sa isang folder ay ipinapakita sa sumusunod na halimbawa.

Halimbawa:

# Magtalaga ng isang pangalan ng folder na may path sa variable na $ dir na naglalaman
# maramihang mga bash file
sa iyo='home / Ubuntu / temp'

Basahin ng # para sa loop ang bawat file mula sa direktoryo at isagawa nang kahanay
para saiskripsasa iyo/ *.sh
gawin
nohup bash '$ script' &
tapos na

Konklusyon:

Karamihan sa mga pangunahing katanungan ng panayam sa bash script ay inilarawan sa artikulong ito para sa mga mambabasa na nais na magsimula ng isang karera bilang bash programmer.