Bash-skriptid: algus

Bash-skriptid: algus
Bash-skriptid, osa 2: tsĂŒklid
Bash-skriptid, osa 3: parameetrid ja kÀsurea vÔtmed
Bash-skriptid, osa 4: sisend ja vÀljund
Bash-skriptid, osa 5: signaalid, taustĂŒlesanded, skriptide haldamine
Bash-skriptid, osa 6: funktsioonid ja teekide arendamine
Bash-skriptid, osa 7: sed ja tekstide töötlemine
Bash-skriptid, osa 8: andmete töötlemise keel awk
Bash-skriptid, osa 9: regulaaravaldised
Bash-skriptid, osa 10: praktilised nÀited
Bash-skriptid, osa 11: expect ja interaktiivsete utiliitide automatiseerimine

TÀna rÀÀgime bash-skripteest. See on kÀskude rea skriptid, mis on kirjutatud bash-shellile. On ka teisi shell'e, nagu zsh, tcsh, ksh, kuid keskendume bashile. See materjal on mÔeldud kÔikidele huvilistele, ainus tingimus on oskus töötada kÀskude reaga Linuxis.

Bash-skriptid: algus

KĂ€skude skriptid on hulk samu kĂ€ske, mida saab klaviatuurilt sisestada, koondatuna failidesse ja ĂŒhendatuna teatud ĂŒhise eesmĂ€rgiga. Nende kĂ€skude töö tulemused vĂ”ivad olla kas iseseisva vÀÀrtusega vĂ”i neid kasutatakse teiste kĂ€skude sisenditena. Skriptid on vĂ”imas viis sagedaste toimingute automatiseerimiseks.

Bash-skriptid: algus

Seega, kui rÀÀkida kÀsureast, vÔimaldab see tÀita mitut kÀsku korraga, sisestades need semikooloniga eraldatuna:

pwd ; whoami

Tegelikult, kui olete seda oma terminalis proovinud, on teie esimene bash-skript, kus on kaasatud kaks kĂ€sku, juba kirjutatud. See töötab nii: esmalt kĂ€sk pwd nĂ€itab ekraanil teavet praeguse töödirektori kohta, seejĂ€rel kĂ€sk whoaminĂ€itab teavet selle kasutaja kohta, kelle alla olete sĂŒsteemi sisenenud.

Sellise lĂ€henemisega saate ĂŒhendada niivĂ”rd palju kĂ€ske ĂŒhte ritta, piirangu seadmiseks on vaid maksimaalne argumentide arv, mille saate programmi edastada. See piirang on mÀÀratletud jĂ€rgmise kĂ€suga:

getconf ARG_MAX

KÀsklustejada on suurepÀrane tööriist, kuid kÀsud tuleb sisestada iga kord, kui need vajalikud on. Ent mis oleks, kui salvestada hulk kÀske faili ja lihtsalt kutsuda see fail nende tÀitmiseks? TÀpselt seda faili, millest me rÀÀgime, nimetatakse kÀsklustejadaks.

Kuidas on ĂŒles ehitatud bash-skripte

Looge tĂŒhi fail kĂ€su abil touch. Selle esimeses reas tuleb mĂ€rkida, millist kestat me kavatseme kasutada. Meid huvitab bash, seega on faili esimene rida jĂ€rgmine:

#!/bin/bash

Selle faili teistes ridades kasutatakse risti sĂŒmbolit kommentaaride tĂ€histamiseks, mis ei lĂ€he lĂ€bi kesta. Siiski on esimene rida eriline juhtum, siin on rist, millele jĂ€rgneb hĂŒĂŒumĂ€rk (sellist jĂ€rjestust nimetatakse shebang), ja tee bash, ĂŒtlevad sĂŒsteemile, et skript on loodud just bash.

KestakĂ€sud eraldatakse reavahetuse tĂ€hisega, kommentaarid on tĂ€histatud risti sĂŒmboliga. Nii see vĂ€lja nĂ€eb:

#!/bin/bash
# This is a comment
pwd
whoami

Siin, nagu ka kĂ€sureas, saab kĂ€sklusi ĂŒhte ritta kirjutada, eraldades need semikooloniga. Siiski, kui kirjutada kĂ€sklusi erinevatesse ridadesse, on fail kergemini loetav. Igatahes töötleb kest neid.

Skripti faili Ôiguste seadmine

Salvesta fail, andes talle nime myscript, ning töö bash-skripti loomise kallal on peaaegu lĂ”ppenud. NĂŒĂŒd on jÀÀnud veel see fail tĂ€idetavaks muuta, muidu, kui proovite seda kĂ€ivitada, saate tĂ”kke. Permission denied.

Bash-skriptid: algus
Skripti faili kÀivitamise katsed valesti seadistatud Ôiguste korral

Teeme faili tÀidetavaks:

chmod +x ./myscript

NĂŒĂŒd proovime seda tĂ€ita:

./myscript

PÀrast Ôiguste seadmist töötab kÔik nagu peab.

Bash-skriptid: algus
Bash-skripti edukas kÀivitamine

Teate vÀljund

Linuxi konsoolis teksti vÀljundamiseks kasutatakse kÀsku echo. Kasutame seda teadmist ja redigeerime oma skripti, lisades seletusi andmetele, mida olemasolevad kÀsud vÀlja viskavad:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

Nii see vÀlja nÀeb pÀrast uuendatud skripti kÀivitamist.

Bash-skriptid: algus
Skripti sÔnumite vÀljund

NĂŒĂŒd saame kuvada selgitavaid teateid, kasutades kĂ€sku echo. Kui te ei tea, kuidas Linuxi tööriistade abil faili redigeerida vĂ”i pole te kunagi kĂ€suga varem tegelenud, echo, vaadake seda materjal.

Muuttorud

Muuttorud vÔimaldavad salvestada skripti failis teavet, nÀiteks kÀskude töö tulemused teiste kÀskude kasutamiseks.

Pole midagi halba, kui kĂ€ivitada eraldi kĂ€ske ilma nende tulemusi salvestamata, kuid sellise lĂ€henemise vĂ”imalused on ĂŒsna piiratud.

Bash-skriptides saab kasutada kahte tĂŒĂŒpi muutujaid:

  • Keskkonnamuutujad
  • Kasutaja muutujaid

Keskkonnamuutujad

MĂ”nikord tuleb kĂ€sureas töötada mingite sĂŒsteemiandmetega. NĂ€iteks siit, kuidas vĂ€ljastada praeguse kasutaja kodukaust:

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

Pange tĂ€hele, et saame kasutada sĂŒsteemimuutujat $HOME kaheksas tsiteerituna, see ei sega sĂŒsteemi seda tuvastamast. Siin on, mida saadakse eeltoodud skripti tĂ€itmisel.

Bash-skriptid: algus
Keskkonna muutuja kasutamine skripti sees

Aga mis siis, kui tahtma ekraanile dollari sĂŒmbolit nĂ€idata? Proovime nii:

echo "Mul on $1 taskus"

SĂŒsteem tuvastab dollari sĂŒmboli tsiteeritud reas ja arvab, et viidatakse olendile. Skript proovib kuvada mÀÀratlemata olendi vÀÀrtust $1. See ei ole see, mida me vajame. Mida teha?

Sellises olukorras aitab tagasi kaldkriipsu kasutamine dollari sĂŒmboli ees:

echo "Mul on $1 taskus"

NĂŒĂŒd skript kuvab just seda, mida oodatakse.

Bash-skriptid: algus
Dollari sĂŒmboli kuvamiseks kasutatava juhtmĂ€rgi kasutamine

Kasutaja muutujaid

Lisaks keskkonnaolenditele lubavad bash-skriptid mÀÀrata ja kasutada skriptis ka oma redigeeritavaid olendeid. Tooted sÀilitavad vÀÀrtuse kuni skripti tÀitmine lÔpeb.

Nagu sĂŒsteemiolenditega, saab redigeeritavaid olendeid kasutada dollari sĂŒmboli kaudu:
TNW-CUS-FMP — promo-kood 10% soodustuse saamiseks meie teenustelt, saadaval aktiveeritav 7 pĂ€eva jooksul

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

Sellise skripti kÀivitamise jÀrel saadav tulemus.

Bash-skriptid: algus
Redigeeritavad olendid skripti jooksul

KĂ€skude asendamine

Üks bash-skriptide kasulikumaid omadusi on vĂ”imalus vĂ€ljundist teavet vĂ€lja vĂ”tta ja see muutujatele mÀÀrata, mis vĂ”imaldab seda teavet kasutada igal pool skripti failis.

Selle tegemiseks on kaks vÔimalust.

  • Kasutades tagurpidi ĂŒlakoma sĂŒmbolit «`»
  • Kasutes konstruktsiooni $()

Esimese lĂ€henemise kasutamisel jĂ€lgige, et te ei kirjutaks tagurpidi ĂŒlakoma asemel tavalist ĂŒlakoma. KĂ€sk tuleb sulgeda kahe sellise sĂŒmboliga:

mydir=`pwd`

Teise lÀhenemise korral kirjutatakse sama nii:

mydir=$(pwd)

Ja skript vÔib lÔpuks vÀlja nÀha nii:

#!/bin/bash
mydir=$(pwd)
echo $mydir

Selle kÀigus salvestatakse kÀsu vÀljund pwdmuutujasse mydir, mille sisu, kasutades kÀsku echo, kuvatakse konsoolis.

Bash-skriptid: algus
Skript, mis salvestab kÀsu tulemused muutujasse

Matemaatilised tehingud

Matemaatiliste tehingute teostamiseks skripti failis saab kasutada sellist konstruktsiooni $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

Bash-skriptid: algus
Matemaatilised tehingud skriptis

Kontrollstruktuur if-then

MĂ”nes olukorras on vajalik juhtida kĂ€su tĂ€itmise voogu. NĂ€iteks, kui mingi vÀÀrtus on suurem kui viis, tuleb teha ĂŒks tegevus, vastasel juhul — teine. Sarnane lĂ€henemine on rakendatav paljusid olukordades, ja siin aitab meid juhtimisseade. if-then. Lihtsaimal kujul nĂ€eb see vĂ€lja jĂ€rgmiselt:

if kÀsk
then
kÀskud
fi

Siin on tööline nÀide:

#!/bin/bash
if pwd
then
echo "It works"
fi

Antud juhul, kui kÀsu pwdtÀitmine Ônnestub, kuvatakse konsoolis tekst "it works".

Kasutame olemasolevaid teadmisi ja kirjutame keerulisema stsenaariumi. Ütleme, et tuleb leida mĂ”ni kasutaja /etc/passwd, ja kui leiate ta, teavitada, et ta eksisteerib.

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

Nii see vÀlja nÀeb pÀrast skripti kÀivitamist.

Bash-skriptid: algus
Kasutaja otsing

Siin kasutasime kÀsku grepkasutaja leidmiseks failist /etc/passwd. Kui kÀsk grepon teile tundmatu, leiate selle kirjelduse siit.

Selles nÀites, kui kasutajat leiti, kuvab skript vastava teate. Aga kui kasutajat ei leita? Sel juhul lÔpetab skript lihtsalt töö, ilma et meile midagi teataks. Sooviksime, et ta ka sellest rÀÀgiks, seega tÀiustame koodi.

Juhtiv konstruktsioon if-then-else

Et programm saaks teatada nii eduka otsingu kui ka ebaĂ”nnestumise tulemustest, kasutame konstruktsiooni if-then-else. Nii see on ĂŒles ehitatud:

if kÀsk
then
kÀsk
else
kÀsk
fi

Kui esimene kÀsk tagastab nulli, mis tÀhistab selle eduka tÀitmise, on tingimus tÔene ja teostamine ei liigu haru muud. Vastupidisel juhul, kui tagastatakse midagi, mis erineb nullist, mis tÀhistab ebaÔnnestumist vÔi vale tulemust, tÀidetakse kÀsud, mis asuvad pÀrast muud.

Kirjutame sellise skripti:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

Selle tÀitmine lÀks haru muud.

Bash-skriptid: algus
Skripti kÀivitamine konstruktsiooniga if-then-else

Noh, jĂ€tkame edasi ja kĂŒsime keerulisemaid tingimusi. Mis juhtub, kui peame kontrollima mitte ĂŒhte tingimust, vaid mitut? NĂ€iteks, kui vajalik kasutaja leitakse, tuleb kuvada ĂŒks teadet, kui mĂ”ni muu tingimus on tĂ€idetud — veel ĂŒks teadet jne. Sellises olukorras aitavad meil sissevÀÀnatud tingimused. See nĂ€eb vĂ€lja niimoodi:

if ĐșĐŸĐŒĐ°ĐœĐŽĐ°1
then
ĐșĐŸĐŒĐ°ĐœĐŽŃ‹
elif ĐșĐŸĐŒĐ°ĐœĐŽĐ°2
then
ĐșĐŸĐŒĐ°ĐœĐŽŃ‹
fi

Kui esimene kÀsk tagastab nulli, mis nÀitab, et see on edukalt tÀidetud, siis tÀidetakse kÀsklused esimeses plokis. then, vastasel juhul, kui esimene tingimus osutub vale, ja kui teine kÀsk tagastab nulli, tÀidetakse teise ploki kood.

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

Sellises skriptis saab nÀiteks luua uue kasutaja kÀsuga useradd, kui otsing ei toonud tulemusi, vÔi teha midagi muud kasulikku.

Numbrite vÔrdlemine

Skriptides saab vÔrrelda numbrilisi vÀÀrtusi. Allpool on loetelu vastavatest kÀskudest.

n1 -eq n2Tagastab tÔese vÀÀrtuse, kui n1 on vÔrdne n2.
n1 -ge n2 Tagastab tÔese vÀÀrtuse, kui n1suurem vÔi vÔrdne n2.
n1 -gt n2Tagastab tÔese vÀÀrtuse, kui n1 suurem n2.
n1 -le n2Tagastab tÔese vÀÀrtuse, kui n1vÀiksem vÔi vÔrdne n2.
n1 -lt n2Tagastab tÔese vÀÀrtuse, kui n1 on vÀiksem n2.
n1 -ne n2Tagastab tÔese vÀÀrtuse, kui n1ei ole vÔrdne n2.

VĂ”tame nĂ€iteks ĂŒhe vĂ”rdlusoperaatori. Pange tĂ€hele, et vĂ€ljend on pandud nurksulgudesse.

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

NÀete, mida see kÀsk annab.

Bash-skriptid: algus
Numbrite vÔrdlemine skriptides

Muutuja vÀÀrtus val1on suurem kui 5, seega tÀidetakse oks. thenVÔrdlusoperaatori kohaselt saadetakse vastav sÔnum konsooli.

Stringide vÔrdlemine

Skriptides saab vĂ”rrelda ka stringivÀÀrtusi. VĂ”rdlusoperaatorid nĂ€evad kĂŒllaltki lihtsad vĂ€lja, kuid stringide vĂ”rdlemisel on teatud eripĂ€rad, millega me allpool tutvume. Siin on nimekiri operaatoritest.

str1 = str2 Kontrollib stringide vÔrdset, tagastab tÔe, kui stringid on identsed.
sstr1 != str2Tagastab tÔe, kui stringid ei ole identsed.
str1 < str2Tagastab tÔe, kui str1on vÀiksem kui str2.
str1 > str2 Tagastab tÔe, kui str1on suurem kui str2.
-n str1 Tagastab tÔe, kui pikkus str1on suurem nullist.
-z str1Tagastab tÔe, kui pikkus str1on vÔrdne nulliga.

Siin on nÀide stringide vÔrdlemisest skriptis:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

Skripti tÀitmisel saame jÀrgmise tulemuse.

Bash-skriptid: algus
Stringide vÔrdlemine skriptides

Siin on ĂŒks rida, millest tasub rÀÀkida. Nimelt, operaatorid „>” ja „<” tuleb tagurpidi kaldkriipsuga varjata, vastasel juhul ei tööta skript Ă”igesti, kuigi vigade teadete ei ilmu.

Nii nÀeb need operaatorid vÀlja koodis:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Siin on skripti tulemused.

Bash-skriptid: algus
Ridade vÔrdlemise, vÀljastatud hoiatus

Pange tÀhele, et skript, kuigi see töötleb, annab hoiatusi:

./myscript: line 5: [: liiga palju argumente

Selle hoiatusest vabanemiseks paneme $val2 topelt jutumÀrkidesse:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

NĂŒĂŒd töötab kĂ”ik nagu peab.

Bash-skriptid: algus
Stringide vÔrdlemine

Veel ĂŒks operaatoreid „>” ja „<” puudutav omadus on see, kuidas nad töötavad suurte ja vĂ€ikeste tĂ€htedega. Selle omaduse mĂ”istmiseks valmistame tekstifaili jĂ€rgmise sisuga:

Likegeeks
likegeeks

Salvestame selle nimega myfile, pÀrast mida anname terminalis sellise kÀskluse:

sort myfile

See sorteerib faili read jÀrgmistele:

likegeeks
Likegeeks

Meeskond sort, vaikimisi jĂ€rjestab read tĂ”usvalt, st vĂ€ike tĂ€ht meie nĂ€ites on suurest tĂ€htsast vĂ€iksem. NĂŒĂŒd valmistame ette skripti, mis vĂ”rdleb samu ridu:

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

Kui see kĂ€ivitada, selgub, et kĂ”ik on vastupidi — vĂ€ike tĂ€ht on nĂŒĂŒd suurest tĂ€htsast suurem.

Bash-skriptid: algus
KÀsk sort ja ridu vÔrreldes skriptifailis

VĂ”rdlemiseks arvestavad kĂ€skudes suured tĂ€hed vĂ€ikeste tĂ€hedega. Ridade vĂ”rdlemine toimub siin sĂŒmbolite ASCII-koodide pĂ”hjal, seega sĂ”ltub jĂ€rjestus sĂŒmbolite koodidest.

Meeskond sort, omakorda kasutab jĂ€rjestust, mis on mÀÀratud sĂŒsteemi keele seadetes.

Failide kontrollimine

VÔib-olla, alltoodud kÀsud on bash-skriptides kÔige sagedamini kasutatavad. Need vÔimaldavad kontrollida erinevaid failidega seotud tingimusi. Siin on nende kÀskude loetelu.

-d failKontrollib, kas fail eksisteerib ja kas see on kataloog.
-e failKontrollib, kas fail eksisteerib.
-f fail Kontrollib, kas fail eksisteerib ja kas see on fail.
-r failKontrollib, kas fail eksisteerib ja kas see on lugemiseks saadaval.
-s failKontrollib, kas fail eksisteerib ja ega see ei ole tĂŒhi.
-w failKontrollib, kas fail eksisteerib ja kas see on kirjutamiseks saadaval.
-x failKontrollib, kas fail eksisteerib ja kas see on tÀidetav.
fail1 -nt fail2 Kontrollib, kas see on uuem fail1, kui fail2.
fail1 -ot fail2Kontrollib, kas see on vanem fail1, kui fail2.
-O fail Kontrollib, kas fail eksisteerib ja kas selle omanik on praegune kasutaja.
-G failKontrollib, kas fail eksisteerib ja kas selle grupi ID vastab praeguse kasutaja grupi ID-le.

Need kĂ€sklused, nagu paljud teised, mida tĂ€na kĂ€sitlesime, ei ole keerulised meeles pidada. Nende nimed, olles lĂŒhendatud erinevatest sĂ”nadest, nĂ€itavad selgelt, milliseid kontrolle nad teostavad.

Proovime ĂŒhte kĂ€sku praktikas:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

See skript, olemasoleva kausta jaoks, vÀljastab selle sisu.

Bash-skriptid: algus
Kausta sisu vÀljund

Eeldame, et teiste kÀskudega saate ise katsetada, kÔik need kehtivad sama pÔhimÔtte kohaselt.

KokkuvÔte

TĂ€nases artiklis kĂ€sitlesime, kuidas alustada bash-skriptide kirjutamist ja tutvustasime mĂ”ningaid pĂ”hilisi aspekte. Tegelikult on bash-programmeerimise teema tohutu. See artikkel on tĂ”lge suure sarja esimese osa, mis koosneb 11 materjalist. Kui soovite jĂ€tku kohe — siin on nende originaalide nimekiri. Mugavuse huvides on lisatud ka see, mille te just lĂ€bi lugesite.

  1. Bash-skript samm-sammult — siin rÀÀgitakse sellest, kuidas alustada bash-skriptide loomist, kĂ€sitletakse muutujate kasutamist, kirjeldatakse tingimuslauseid, arvutusi, numbrite ja stringide vĂ”rdlemist, samuti teabe vĂ€ljaselgitamist failide kohta.
  2. Bash-skripti osa 2, Bash, see on awesome — siin kĂ€sitletakse for- ja while-tsĂŒklite töö eripĂ€rasid.
  3. Bash-skripti osa 3, Parameetrid & valikud — see materjal kĂ€sitleb kĂ€surea parameetreid ja lĂŒliteid, mida saab skriptidele edastada, samuti andmete töötlemist, mida kasutaja sisestab ja mida saab lugeda failidest.
  4. Bash-skripti osa 4, Sisend & VĂ€ljund — siin rÀÀgitakse failide descriptoritest ja neist töötamisest, sisendi-vĂ€ljundi voogudest, vigadest ja vĂ€ljundi suunamisest.
  5. Bash-skripti osa 5, Sighals & Töö — see materjal on pĂŒhendatud Linuxi signaalidele, nende töötlemisele skriptides, ajastatud skriptide kĂ€ivitamisele.
  6. Bash Skriptimine Osa 6, Funktsioonid — siit saad teada, kuidas luua ja kasutada funktsioone skriptides ning arendada teeke.
  7. Bash Skriptimine Osa 7, sed kasutamine — see artikkel kĂ€sitleb voogedastusfailide redigeerijat sed.
  8. Bash Skriptimine Osa 8, awk kasutamine — see materjal kĂ€sitleb andmete töötlemise keelt awk.
  9. Bash Skriptimine Osa 9, Regulaaravaldised — siin saab lugeda regulaaravaldiste kasutamisest bash-skriptides.
  10. Bash Skriptimine Osa 10, Praktilised NĂ€ited — siin on esitatud tehnikad sĂ”numitega töötamiseks, mida saab kasutajatele saata, samuti kettaseire meetod.
  11. Bash Skriptimine Osa 11, Expect Command — see materjal keskendub Expect vahendile, millega saab automatiseerida interaktiivsete utiliididega suhtlemist. EelkĂ”ige kĂ€sitleme siin expect-skripte ja nende koostööd bash-skriptide ja teiste programmidega.

Usume, et selle artiklite sarja ĂŒks vÀÀrtuslikke omadusi on see, et see algab kĂ”ige lihtsamast, mis sobib igasuguse tasemega kasutajatele, ja juhatab jĂ€rk-jĂ€rgult tĂ”sistele teemadele, andes kĂ”igile soovijatele vĂ”imaluse edendada oma oskusi Linuxi kĂ€surea skriptide loomises.

Lugemise teine pool! Palume bash-programmeerimise guru neil rÀÀkida, kuidas nad on saavutanud oma oskuste tipptaseme, jagada saladusi ning ootame muljeid neilt, kes on just kirjutanud oma esimese skripti.

Bash-skriptid: algus

Ainult registreeritud kasutajad saavad kĂŒsitluses osaleda. Logige sisse, palun.

TĂ”lkida ĂŒlejÀÀnud artiklite tsĂŒkkel?

  • Jah!

  • Ei, ei ole vaja.

HÀÀletas 1030 kasutajat. Kinni 106 kasutajat.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster