Teoria e Bashit

/ bin / bash

0. Indeksi

  1. Gjërat që u ndodhin shumicës së njerëzve
  2. Struktura e një skenari
  3. Printo në ekran
  4. Lexoni përdoruesin INPUT
  5. Llogaritjet në bash
  6. Kushtet
  7. Sythe
  8. funksionet
  9. kapjet

1. Gjërat që u ndodhin shumicës së njerëzve

/ bin / bash ose / bin / sh

Një nga gjërat e para që bën makineria kur ekzekuton skenarin tonë është të shikojmë me cilën predhë duhet ta bëjë atë. Në shumicën e sistemeve aktuale linux / Bin / sh është një lidhje për të / bin / bash, por kjo nuk është gjithmonë rasti, për shembull në shpërndarjet që përdorin kuti e zënë sjell Sh dhe zakonisht ato gjithashtu sjellin Përplas, por nëse e përdorni / Bin / sh, nuk do të funksionojë me Bash. Kjo është arsyeja pse unë rekomandoj që gjithmonë të përdorni / bin / bash.

Unicode kundrejt ASCII

A keni menduar ndonjëherë pse nuk mund të përdorni "¿" ose "" në skenarët tuaj? Apo përdorni thekse? Mund të jetë mjaft i bezdisshëm në skenarët ndërveprues. Kjo është për shkak se kodimi i paracaktuar i Bash është ASCII, ose çfarë është e njëjtë, grupi i karaktereve angleze. Për ta ndryshuar atë, ne vetëm duhet t'i themi skenarit tonë se duam të përdorim Unicode. Për këtë ju duhet të shtoni një rresht menjëherë pas interpretuesit të komandës:

# - * - Kodimi: UTF-8 - * -

Kini kujdes, është e rëndësishme që kjo linjë të jetë në fillim të skenarit.

Bëni skenarin të ekzekutueshëm

Funnyshtë qesharake me sa njerëz drejtojnë skenarët me «skenari $ bash.sh" në vend të "$ ./script.shNë fund të fundit, kjo është ajo për të cilën ne kemi përcaktuar një predhë.

Për të shtuar lejet e ekzekutimit, duhet të ekzekutoni:

sudo + x shkrim.sh
Nëse skenari ynë është i ekzekutueshëm, ne mund ta shtojmë atë në PATH-in tonë dhe ta bëjmë të ekzekutueshëm nga kudo / dosja në kompjuterin tonë. Për këtë ne duhet të shtojmë ose në .bashrc të përdoruesit tonë ose në / etc / bashrc në linjë
BIN = "dosje ku kemi skriptet" PATH = "$ BIN $ PATH"
Shtë një rregull Bash të shkruash emra të ndryshueshëm në të gjitha shkronjat e mëdha. Shumë njerëz nuk e ndjekin këtë rregull, por për shkrimet e gjata vlerësohet sepse i bëjnë ato shumë më të lexueshme

2. Struktura e një skenari

  1. Ballore
  2. Përkufizimi i ndryshoreve globale
  3. Ndihmë
  4. funksionet
  5. Trupi kryesor

Titulli është vendi ku ne tregojmë se cilën shell duam të përdorim dhe kodimin. Avantazhi i funksioneve është të ripërdorin kodin që përsëritet duke e shkruar atë vetëm një herë dhe për ta bërë më të lehtë për të kuptuar skenarin, për kodin që tejkalon 100 rreshta është shumë i dobishëm.

Për të përdorur funksionet, ato duhet të përcaktohen para trupit kryesor të shkrimit tonë. Dhe nëse duam të përdorim variabla në nivelin global të të gjithë shkrimit tonë, si në trupin kryesor ashtu edhe në funksionet, duhet t'i përcaktojmë ato në fillim të gjithçkaje, menjëherë pas kokës.

Së fundmi, është praktikë e mirë të shkruash një funksion ndihmës kur skenari ynë funksionon keq ose me parametra të këqij. Padyshim, në ato raste ne duam të dalim nga skenari menjëherë, pa lexuar funksionet. Për këtë mund të përdorim:

ndihma e funksionit () {echo "" "Teksti ynë i mirë-formatuar i ndihmës." "" dilni nëse [[-z $ 1 || $ 1 == "-h" || $ 1 == "--ndihmoni"]]; atëherë ndihmoni fi

Nëse shtojmë "dalje" në funksionin e ndihmës, do të dalim nga skenari sa herë që përdorim ndihmën, për shembull pas mesazheve të gabimit, etj. Ne ruajmë disa rreshta të kodit.

Kushti tregon ndihmën e shfaqjes në ekran dhe dilni nëse skenari ekzekutohet pa parametra ose nëse specifikohet -h / –help. Nëse e shikoni, kjo është sjellja standarde e shumicës së programeve linux.

Përdorimi i 3 citateve me echo lejon përdorimin e ndërprerjeve të linjave pa lënë mesazhin të shfaqet nga echo. Për mesazhe me shumë rreshta është shumë më e përshtatshme të përdoret echo vetëm një herë.

3. Printo në ekran

Ekzistojnë 2 komanda kryesore për shtypjen në ekran në bash: «humbas»Y«printf« Ata të dy janë po aq të shpejtë dhe të dy janë pjesë e bash. Dallimi kryesor për një fillestar është që jehona shton një linjë të re në fund, ndërsa «printf"Nuk.

Echo është shumë e mirë dhe është ajo që përdorin shumica e njerëzve, megjithatë kur lexoni INPUT-in e përdoruesit, ose kur dëshironi të shtypni variablat e marrë nga skedarët me përpunimin e tekstit, gjëra të çuditshme mund të ndodhin. Ato zakonisht zgjidhen lehtësisht, aq lehtë sa ndryshimi i kuotave të dyfishta në të vetme ose anasjelltas, ose marrja e referencave të ndryshueshme nga kuotat. «jehonë»A bën gjëra të çuditshme edhe në varësi të mënyrës se si është përpiluar, nëse përdorim gjithmonë Ubuntu ose gjithmonë Fedora, kjo nuk ndikon tek ne, por nëse ndryshojmë shpërndarjen që bën.

Kjo është arsyeja pse unë përdor «printf«, Që nuk më dhemb koke dhe gjithashtu sillet më shumë si«printf»Nga C ose«shtyp»Nga Python, kjo është shumë e rëndësishme nëse doni ndonjëherë ta transferoni skriptin tuaj në një gjuhë tjetër programimi.

Për një diskutim më të gjerë mund të vizitoni kjo pyetje nga Unix & Linux në Stack Exchange.

4. Lexoni INPUT-in e përdoruesit

Gjithçka që shkruajmë pas emrit të shkrimit tonë dhe para se të godasim tastin ENTER ruhet automatikisht në variabla të veçantë. Këto variabla janë të tipit $ X ku X është një numër.

«$0»Tregon emrin e shkrimit tonë dhe nga«$1»Në pafundësi gjithçka që kemi shkruar më vonë është e ndryshueshme. Për shembull:

mace << EOF >> test.sh #! / bin / bash # - * - Kodimi: UTF-8 - * - printf "\ $ 0 = $ 0 \ n" printf "\ $ 1 = $ 1 \ n" printf "\ $ 2 = $ 2 \ n" EOF chmod + x script.sh ./script.sh skedari im.txt

Ne krijojmë një skenar provë, e bëjmë të ekzekutueshëm dhe e ekzekutojmë me 2 parametra. Ne marrim daljen e ekranit të:

$ 0 = ./script.sh $ 1 = im $ 2 = skedar.txt

Duke përdorur citate mund të kishim kaluar "file.txt tim" në "$ 1".

Mund të lexojmë edhe INPUT-in e një përdoruesi me komandën "read", duke treguar direkt variablin ku duam të ruajmë parametrin. Për shembull:

printf "Si e ke emrin? \ n" lexo NAME printf "Përshëndetje, $ NAME. \ n"
Bëni kujdes me caktimin e ndryshoreve. "$ VAR = përmbajtje" do të prodhojë një gabim, nuk mund të lihen hapësira midis shenjës së barabartë, emrit të ndryshores dhe përmbajtjes. Përdorimi i saktë është "VAR = përmbajtje"

5. Llogaritjet në Bash

Për këtë mund të përdorim «eksp«, Për sa kohë që nuk kemi nevojë të bëjmë llogaritje komplekse. Duhen theksuar dy gjëra, e para është se «eksp»Vetëm pranon numrat e plotë, e dyta është se ndarja kthen rezultatin e plotë, për të parë pjesën tjetër që mund të përdorim«%".

Zakonisht ne dëshirojmë të caktojmë rezultatin e expr në një ndryshore. Ne mund ta bëjmë atë në dy mënyra:

VAR2 = `expr $ VAR1 / 10` VAR2 = $ (expr $ VAR1 / 100)

Ju gjithashtu mund të kaloni «eksp»Përdorimi i kllapave të dyfishta:

VAR2 = $ (($ VAR1 / 100))
Për një shpjegim të mëtejshëm të «eksp»Ose një alternativë që përdor numra të plotë, mund ta shikoni kjo hyrje e KZKG ^ gaara.

6. Kushtet

Tashmë është shkruar gjatë për «if" 'tjetër" 'elif»Dhe kushtet. Mund të lexoni për këtë në:

Unë thjesht dua të theksoj ndryshimin midis përdorimit të kllapave të thjeshta katrore, «[]«, Dhe kllapa dyshe,«[[]]«, Për kushtet. Me kllapa të dyfishtë mund të përdorim kushte shtesë:

  • «&&»Për dhe
  • «||»Për ose

Per te perdorur "&&»Y«||»Me kllapa të thjeshtë katrore, secila pjesë duhet të ndahet në kllapa të veçantë katrorë. Shembulli i përdorur për pjesën e skenarit që duket për të parë nëse ndihma duhet të ekzekutohet do të ishte:

nëse [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "- ndihmë"]]; atëherë ndihmoni fi

Kjo gjithashtu na shpëton nga detyrimi për të shkruar emra të ndryshueshëm në thonjëza për të parandaluar gabimet. Për shembull:

nëse [$ 1 = 1]; atëherë printf "Parametri është i barabartë me 1."; fi nëse ["$ 1" = 1]; atëherë printf "Parametri është i barabartë me 1."; fi nëse [[$ 1 = 1]]; atëherë printf "Parametri është i barabartë me 1."; fi

Nëse script.sh ekzekutohet pa ndonjë parametër, rasti i parë do të jepte një gabim:

bash: [: =: pritet operatori unary
Në Bash "=" dhe "==" interpretohen të dy në të njëjtën mënyrë. Kjo nuk ndodh në gjuhët e tjera të programimit ku "=" përdoret vetëm për të caktuar variabla.

Ajo për të cilën nuk është biseduar është «rast«, Përdoret për të thjeshtuar«if« Le të fillojmë në fillim, kur nuk kemi ndonjë «if»I gjithë kodi do të ekzekutohet. Nëse shtojmë një kusht «if»Do të kemi dy raste, një në të cilën blloku i kodit brenda«if»Dhe rasti tjetër kur ky bllok nuk ekzekutohet.

Nëse shtojmë një «tjetër«Ne gjithashtu do të kemi dy raste, por këto dy raste janë të ndryshme nga ato të mëparshmet. Sepse tani do të ketë dy blloqe të kodit të kushtëzuar, A dhe B, dhe një bllok C, që është pjesa tjetër e programit. A ose B do të ekzekutohet, dhe C. Në rastin e mëparshëm ishin A dhe C ose vetëm C.

Për të shmangur kushtet e shkrimit «nese Tjeter"brenda"tjetër»Dhe për të thjeshtuar leximin e kodit, ai u krijua«elif« Kur kemi shumë kushte që varen nga e mëparshmja, për shembull diapazoni i numrave ose lloji:

VAR1 = $ 1 nëse [[$ $ VAR1 = 1]]; atëherë printf "1 \ n" elif [[$ VAR1 = 2]]; atëherë printf "2 \ n" elif [[$ VAR1 = 3]]; pastaj printf "3 \ n" tjetër printf "asnjë \ n" fi

Në rastin e «funditelif»Shumë kushte do të lexohen. Në rast se ky proces është i efektshëm:

VAR1 = $ 1 rast $ VAR në 1) printf "1 \ n" ;; 2) printf "2 \ n" ;; 3 | 4) printf "3 ose 4, varet \ n" ;; *) printf "asnjë \ n" ;; se C

Do të lexohet një ndryshore, në këtë rast VAR1, dhe do të kontrollohet nëse është ekuivalente me ndonjë nga rastet, nëse jo, rasti i parazgjedhur "*" do të ekzekutohet. Pikëpresjet dyshe janë ekuivalente me «pushim«, Ata tregojnë«rast»Kjo duhet të marrë fund.

«Rast»Mund të përdoret gjithashtu si një sekuencë e«if«, Për këtë duhet të përdorni« ;; & »(vazhdoni) në vend të« ;; » (ndale)

7. Sythe

Shumë pak sythe dihen në çdo gjuhë programimi. Në Bash ata janë «ndërsa" 'deri»Y«për« Blogshtë shkruar tashmë në blog për këto:

Ekzistojnë dy lloje të sytheve «për«, Ata që janë të tipit«$ për VAR në LOQUESEA»Dhe cilat janë të tipit C«$ për ((I = 0; I <= 10; I ++))« Lloji i dytë i sytheve «për»Janë shumë të dobishme, ka 3 pjesë në fillim të lakut:

  • Deklarimi dhe fillimi i ndryshoreve (Në këtë rast një ndryshore ndihmëse "I = 0").
  • Kushti i ekzekutimit (derisa të jem më i vogël ose i barabartë me 10).
  • Rritja e ndryshores ndihmëse

Për mendimin tim është lak më i fuqishëm nga të gjithë. Një shembull, i cili shtyp të gjithë numrat nga 0 në 10, përfshirë:

#! / bin / bash për ((I = 0; I <= 10; I ++)); bëj printf "$ I \ n" e bërë

8. Funksionet

Ka disa gjëra që Bash nuk na lejon të bëjmë, apo jo? Në shikim të parë, funksionet bash ju ndalojnë të bëni 3 gjëra: deklarimi i ndryshoreve lokale në funksione, kalimi i parametrave te funksionet dhe kthimi i parametrave. Gjithçka ka një zgjidhje.

Mos bëni asgjë si:

#! / bin / bash VAR = 1 printc funksioni "$ VAR \ n" përshëndetje () {VAR = 2 printf "$ VAR \ n"} përshëndetje printf "$ VAR \ n"

Kjo shtyp në ekranin 1, 2 dhe 2.

Për të deklaruar ndryshoret lokale, shtoni «lokal»Kur deklaroni:

#! / bin / bash VAR = 1 printf funksioni "$ VAR1 \ n" foo () {lokale VAR1 = 2 printf "$ VAR1 \ n"} printf "$ VAR1 \ n" foo printf "$ VAR1 \ n"

Kjo shtyp 1, 1, 2, 1 në ekran.

Si i kaloni parametrat në një funksion?

#! / bin / bash # - * - Kodimi: UTF-8 - * - funksioni përshëndetje () {printf "Përshëndetje $ 1 \ n"}

printf "Si e ke emrin? \ n"
lexo VAR1
pershendetje $ VAR1

Si kthehen parametrat?

#! / bin / bash # - * - Kodimi: UTF-8 - * - funksioni përshëndetje () {printf "Përshëndetje holita"} printf "Si e ke emrin? \ n" lexo VAR1 VAR1 = $ (përshëndetje) # KETU ISSHT printf "$ VAR1 $ VAR2 \ n"

Siç mund ta shihni kjo ka dy pengesa, ju mund të ktheni vetëm një parametër, i cili mund të jetë një vektor 😀, dhe nëse doni të ktheni një parametër, nuk mund të printoni më në ekran nga ai funksion.

Podéis encontrar más cosas de funciones en [url=https://blog.desdelinux.net/programando-en-bash-parte-3/]este artículo de Usemoslinux[/url].

9. Getops

Një nga gjërat e fundit që duhet të dini rreth Bash për të krijuar skenare komplekse është «helmet« Përdoret për të kaluar opsionet në skenar pavarësisht nga rendi. E vetmja gjë e dobët është se ndikon vetëm në opsionet e shkurtra:

#! / bin / bash # - * - Kodimi: UTF-8 - * - Ndihma e funksionit VARC = 0 () {printf "Mesazh ndihme \ n" dalje} nëse [[-z $ 1]]; atëherë ndihmoni fi gjatë marrjes: ha: b: c OPT; bëj rastin $ OPT në h) ndihmë ;; :) ndihmë ;; a) VARA = $ OPTARG ;; b) VARB = $ OPTARG ;; c) VARC = 1 ;; \?) ndihmë ;; esac done # Blloku kryesor i skenarit që # bën gjëra me VARA, VARB dhe VARC

«Getopt»Lexon opsionet një nga një, kështu që nevojitet një lak.

Ekzistojnë 2 lloje opsionesh që mund të kalohen duke përdorur «fillime':

  • Parametrat e quajtur flamuj, në këtë rast -c ose -h. Ato specifikohen me shkronjën që duam të përdorim. Ata janë si variabla Boolean, «i vërtetë»(Janë) ose«i rremë"(Ata nuk janë këtu).
  • Parametrat me argumente të shoqëruara, -a çdo gjë, -b çdo gjë. Ato specifikohen me shkronjën që duam me një dy pika më poshtë. Argumenti është ruajtur në OPTARG (ky emër është i pandryshueshëm).
Pikat e dyfishta fillestare nuk tregojnë gabime.

Çfarë bën ky skenar?

Shfaq mesazhin e ndihmës kur nuk kalohet asnjë opsion, kur kalohet parametri "-h", kur kalon një parametër i pavlefshëm (për shembull "-x", kjo bëhet nga "\?") Ose kur një parametër i vlefshëm pa argument (":"). Në rastet e tjera kursen praninë e "-c" si 1 në VARC, dhe vlerat e kaluara me "-a" dhe "-b" në VARA dhe VARB.


20 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   i gjallë dijo

    MASTERLY. Unë nuk them më shumë U_U

  2.   Miguel dijo

    Përshëndetje artikull shumë i mirë.
    Hej ju vendosni të jepni leje sudo + x në vend të chmod + x

    1.    Henri dijo

      $ sudo chmod + x shkrim.sh
      (Për të qenë më të saktë, hehe)

      Ah, urime dhe faleminderit!

  3.   ftohje zjarri dijo

    Post shumë i mirë, me të vërtetë ju përgëzoj, vazhdoni, Përshëndetje

  4.   Gustavo dijo

    Dhe nëse doni që skenari të jetë i dukshëm kur ekzekutohet, hap pas hapi, duke parë për shembull se si sillen variablat, kushtet dhe gjithçka, mund të përdorni:

    shkrimi sh -x

    të fala

  5.   atje dijo

    PJES e tuto. E shkëlqyeshme dhe e shpjeguar shumë mirë.
    Ju faleminderit.

  6.   Gabriel dijo

    Postim i shkëlqyeshëm për këtë temë

  7.   Mario Guillermo Zavala Silva dijo

    Shumë interesante dhe e rëndësishme, faleminderit për informacionin.
    Gëzuar !!!

  8.   Jo nga Brooklyn dijo

    Faleminderit të gjithëve për urimet tuaja, pasi për komandën Miguel, ai nuk më lejon të modifikoj hyrjen sapo të botohet. Do të duhet të bëjë elavë që imagjinoj.

  9.   Adrián dijo

    Shume mire!

    Së pari, doja t'ju përgëzoja për postimin, e pata të lehtë për tu kuptuar dhe me të vërtetë ndihmon të ndiqni udhëzimet për të programuar mirë në bash, veçanërisht për njerëzit që kanë filluar të programojnë.

    Sidoqoftë kam gjetur disa detaje të cilat mendoj se duhen korrigjuar.

    Së pari: në seksionin «2. STRUKTURA E SHKRIMIT »funksioni nuk është i mbyllur, gjë që do të shkaktojë probleme gjatë ekzekutimit të tij në një skenar.
    Zgjidhja do të ishte shtimi i një mbajtëse menjëherë pas komandës "dalje".

    Së dyti: në seksionin «4. LEXONI SHTYPIN E PERRDORUESIT »ju pohoni se parametrat që përdoruesi mund të futë variojnë nga 0 $ deri në pafundësi, megjithatë« bash »do të interpretojë vetëm nga 0 $ në 9 $, pasi 10 $ do të ishte e barabartë me $ 1 + 0.
    Për të zgjidhur këtë problem, ose mund të përdorni komandën "shift" për të kapur variablat e mëposhtëm. Ose specifikoni ndryshoren në kllapa "$ {10}", në mënyrë që bash të marrë vlerat së bashku, jo si $ 1 + 0.

    Pa zhurmë të mëtejshme, përshëndetje!

    1.    Jo nga Brooklyn dijo

      Faleminderit per komentin tuaj Dështoi plotësisht për të shpjeguar përdorimin e saktë të daljes, si në skenar ashtu edhe në funksionet. Sa për {10} dollarë, unë kurrë nuk kam lënë trashëgim aq shumë, kështu që nuk e kam hasur në atë problem, është mirë të dihet se ekziston një zgjidhje për këtë (unë tashmë e kam përshkruar gjënë e re të mësuar sot).

  10.   chanio dijo

    Faleminderit shumë për artikullin! Disa gjëra që përmendni ende nuk kishin sqarime. Për shembull, getops.
    Në pjesën e daljeve të ekranit, ju është dashur të përmendni macen që më vonë e përmendni ...
    mace <
    ***************************************
    * Kjo formë është shumë ekspresive *
    ***************************************
    Eof

    Në shembullin tuaj:
    mace << EOF >> test.sh
    Duhet të përmenden dy gjëra ... >> është 'append' që do të thotë, nëse përsërit të njëjtën komandë, do të kesh të gjithë skenarin në dy kopje ... Duhet të përdorësh vetëm një
    mace << EOF> shkrimi.sh
    Po, duhet të quhet edhe skript.sh
    Pastaj në
    nëse [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–ndihmoni"]]; atëherë
    ndihmë
    fi

    Unë mendoj se duhet të shkruhet ...
    nëse [[-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "–ndihmoni"]]; atëherë
    ...

    Ka shumë më shumë për të zbuluar nga BASH.
    Mund ta titulloni "BAZAT"? 🙂
    Për shembull, parametrat 'testues' pëlqejnë -z për të parë nëse janë bosh, ose -f për të ditur nëse ekziston si skedar.

    Faleminderit përsëri për përpjekjen tuaj.
    alberto

  11.   clow_eriol dijo

    Një udhëzues shumë i mirë për skenarin bash!

  12.   okz dijo

    -- Kodimi: UTF-8 --

    Kjo është hera e parë që kam parë atë linjë për të vendosur kodimin e karakterit në një skenar bash. Më duket më shumë si Python sesa Bash. A është vërtet e nevojshme? Unë kam kërkuar për një referencë në Google por nuk mund të gjej asgjë, a keni një lidhje në dorë që flet për këtë çështje? Konkretisht mbi përshtatshmërinë e asaj linje.

    Sipas mendimit tim, për të shkruar skripte në Bash duke përdorur UTF-8, duhet të ruani vetëm skedarin e tekstit si të tillë (pa BOM) dhe të keni disa variabla të mjedisit, (LANG dhe LC_ *), të vendosura saktë.
    Atëherë, padyshim, është e nevojshme që komandat e ekzekutuara të përgatiten për kodime të ndryshme nga ASCII. Për shembull, nëse duam të konvertohemi në të madhe, kjo nuk duket se funksionon:
    «Echo áéíóú | tr az AZ »
    o:
    «Echo áéíóú | tr [: poshtme:] [: sipërme:] »
    dhe është më mirë të përdorni:
    «Echo áéíóú | awk '{shtypës i shtypur ($ 0)}' ».

    1.    Jo nga Brooklyn dijo

      Rreth «encoding»Beenshtë përmendur në këtë blog më parë:

      Bash: si ta bëjmë një skenar të ekzekutueshëm
      Shkrimi i shërbimeve postare të instalimit

    2.    borriquito si ti dijo

      Dikush më korrigjon, por ajo vijë e kodimit (# -- Kodimi: UTF-8 --) Nuk ka asnjë lidhje me bash ose shell: është një linjë komenti (fillon me #) dhe shërben për t'i thënë EDITORIT që ne përdorim për të shkruar skenarin (vim, emacs ...) kodimin e skedarit.

      Në fakt, bash nuk e sheh një linjë të tillë, sepse është një linjë komenti.

  13.   JoRgE-1987 dijo

    Një mësim i shkëlqyeshëm, pasi Sysadmin e njeh Shkrimin në Bash është thelbësor, është i dobishëm për gjithçka.

    Shumë Shumë i mirë!

    Përshëndetje!

  14.   Eduardo Kuomo dijo

    Në rast se është i dobishëm për këdo, këtu janë disa përdorime dhe shembuj për të krijuar Skriptet tuaja: https://github.com/reduardo7/hsabx

  15.   Lito Zi dijo

    Shume mire. Gjëra të reja për të shtuar në shkrimet e mia. Gjëja e kodifikuar dhe printf nuk e kishte atë.
    Faleminderit!!!

  16.   xxxtonixxx dijo

    Artikull shumë i mirë! E mbaj këtë për të preferuarat, do të ishte mirë të korrigjoja atë që nuk shkon dhe madje ta zgjeroj me më shumë përmbajtje. Një duartrokitje për të gjitha këto informacione !!!!