Bashova teĆ³ria

/ bin / bash

0. Register

  1. Veci, ktorĆ© sa dejĆŗ vĆ¤ÄÅ”ine ľudĆ­
  2. Å truktĆŗra scenĆ”ra
  3. Tlačte na obrazovke
  4. Prečƭtajte si VSTUPU pouÅ¾Ć­vateľa
  5. VĆ½počty v bash
  6. Podmienky
  7. Slučky
  8. funkcie
  9. Gettops

1. Veci, ktorĆ© sa dejĆŗ vĆ¤ÄÅ”ine ľudĆ­

/ bin / bash alebo / bin / sh

Jednou z prvĆ½ch vecĆ­, ktorĆŗ stroj robĆ­ pri vykonĆ”vanĆ­ nĆ”Å”ho skriptu, je sledovanie toho, s ktorĆ½m shellom by to malo robiÅ„. Na vĆ¤ÄÅ”ine sĆŗčasnĆ½ch linuxovĆ½ch systĆ©mov / Bin / sh je odkaz na / bin / bash, ale nie vždy to tak je, naprĆ­klad v distribĆŗciĆ”ch, ktorĆ© pouÅ¾Ć­vajĆŗ busybox prinĆ”Å”ajĆŗ Sh a obyčajne aj prinesĆŗ tresnĆŗÅ„, ale ak pouÅ¾Ć­vate / Bin / sh, nebude fungovaÅ„ s Bashom. Preto odporĆŗčam vždy pouÅ¾Ć­vaÅ„ / bin / bash.

Unicode vs. ASCII

Zamysleli ste sa niekedy nad tĆ½m, prečo vo svojich skriptoch nemĆ“Å¾ete použiÅ„ ā€žĀæā€œ alebo ā€žĆ±ā€œ? Alebo použiÅ„ akcenty? V interaktĆ­vnych skriptoch to mĆ“Å¾e byÅ„ dosÅ„ neprĆ­jemnĆ©. Je to preto, že predvolenĆ© kĆ³dovanie pre bash je ASCII, alebo čo je rovnakĆ©, anglickĆ” znakovĆ” sada. Aby sme to zmenili, musĆ­me iba povedaÅ„ nĆ”Å”mu skriptu, že chceme pouÅ¾Ć­vaÅ„ Unicode. Preto musĆ­te pridaÅ„ riadok hneď za tlmočnĆ­k prĆ­kazov:

# - * - KƓDOVANIE: UTF-8 - * -

Buďte opatrnĆ­, je dĆ“ležitĆ©, aby sa tento riadok nachĆ”dzal na začiatku skriptu.

Vytvorte spustiteľnĆ½ skript

Je sranda, koľko ľudĆ­ spĆŗŔńa skripty pomocou Ā«$ bashscript.sh" namiesto "$ ./script.shā€žKoniec koncov, na to sme definovali Å”krupinu.

Ak chcete pridaÅ„ oprĆ”vnenie na vykonĆ”vanie, musĆ­te vykonaÅ„:

sudo + x script.sh
Ak je nĆ”Å” skript spustiteľnĆ½, mĆ“Å¾eme ho pridaÅ„ na naÅ”u PATH a urobiÅ„ ho spustiteľnĆ½m z ľubovoľnĆ©ho miesta / priečinka v naÅ”om počƭtači. Preto musĆ­me pridaÅ„ buď do sĆŗboru .bashrc nĆ”Å”ho pouÅ¾Ć­vateľa, alebo do riadku / etc / bashrc
BIN = "priečinok, kde mĆ”me skripty" PATH = "$ BIN $ PATH"
Pravidlom Bash je pĆ­saÅ„ nĆ”zvy premennĆ½ch veľkĆ½mi pĆ­smenami. Mnoho ľudĆ­ toto pravidlo nedodržiava, ale pri dlhĆ½ch skriptoch sa to cenĆ­, pretože ich robia oveľa čitateľnejÅ”Ć­mi

2. Å truktĆŗra scenĆ”ra

  1. hlava
  2. DefinĆ­cia globĆ”lnych premennĆ½ch
  3. Pomoc
  4. funkcie
  5. HlavnƩ telo

Hlavička je miesto, kde označujeme, ktorĆ½ shell chceme použiÅ„, a kĆ³dovanie. VĆ½hodou funkciĆ­ je opƤtovnĆ© použitie kĆ³du, ktorĆ½ sa opakuje tak, že ho napĆ­Å”ete iba raz, a aby ste uľahčili pochopenie skriptu, je to veľmi užitočnĆ© pre kĆ³d, ktorĆ½ presahuje 100 riadkov.

Aby bolo možnĆ© pouÅ¾Ć­vaÅ„ funkcie, musia byÅ„ definovanĆ© pred prvou časÅ„ou nĆ”Å”ho skriptu. A ak chceme v naÅ”om skripte pouÅ¾Ć­vaÅ„ premennĆ© na globĆ”lnej Ćŗrovni, a to ako v hlavnej časti, tak aj vo funkciĆ”ch, musĆ­me ich definovaÅ„ na začiatku vÅ”etkĆ©ho, hneď za hlavičkou.

Nakoniec je dobrĆ½m zvykom napĆ­saÅ„ pomocnĆŗ funkciu, keď nĆ”Å” skript beÅ¾Ć­ zle alebo so zlĆ½mi parametrami. Je zrejmĆ©, že v tĆ½chto prĆ­padoch chceme skript okamžite opustiÅ„ bez prečƭtania funkciĆ­. Na to mĆ“Å¾eme použiÅ„:

function help () {echo "" "NĆ”Å” dobre naformĆ”tovanĆ½ text pomoci." "" ukončiÅ„, ak [[-z $ 1 || $ 1 == "-h" || $ 1 == "--help"]]; potom pomĆ“Å¾ fi

Ak k funkcii pomocnĆ­ka pridĆ”me vĆ½raz ā€žexitā€œ, ukončƭme skript pri každom spustenĆ­ pomoci, naprĆ­klad po chybovĆ½ch sprĆ”vach atď. UloÅ¾Ć­me niekoľko riadkov kĆ³du.

Podmienka indikuje pomocnĆ­ka na obrazovke a ukončenie, ak je skript spustenĆ½ bez parametrov alebo je zadanĆ½ -h / ā€“help. Ak sa na to pozriete, je to Å”tandardnĆ© sprĆ”vanie vĆ¤ÄÅ”iny linuxovĆ½ch programov.

Použitie 3 Ćŗvodzoviek s ozvenou umožňuje pouÅ¾Ć­vaÅ„ zalomenie riadkov bez toho, aby sa sprĆ”va nechala zobrazovaÅ„ ozvenou. Pre sprĆ”vy s viacerĆ½mi riadkami je oveľa pohodlnejÅ”ie pouÅ¾Ć­vaÅ„ echo iba raz.

3. Tlačte na obrazovku

ExistujĆŗ dva hlavnĆ© prĆ­kazy pre tlač na obrazovku v bash: Ā«minĆŗÅ„Ā»YĀ«printfĀ«. Obaja sĆŗ rovnako rĆ½chli a obaja sĆŗ sĆŗčasÅ„ou bash. HlavnĆ½ rozdiel pre začiatočnĆ­kov je, že echo na konci pridĆ” novĆ½ riadok, zatiaľ čo Ā«printfĀ»Nie.

Echo je v poriadku a je to to, čo vĆ¤ÄÅ”ina ľudĆ­ pouÅ¾Ć­va, ale pri čƭtanĆ­ VSTUPU pouÅ¾Ć­vateľa alebo ak chcete tlačiÅ„ premennĆ© prevzatĆ© zo sĆŗborov textovĆ½m procesorom, mĆ“Å¾u sa staÅ„ zvlĆ”Å”tne veci. Zvyčajne sa dajĆŗ ľahko vyrieÅ”iÅ„, rovnako jednoduchĆ© ako zmena dvojitĆ½ch Ćŗvodzoviek na jednoduchĆ© alebo naopak, alebo vyradenie variabilnĆ½ch odkazov z Ćŗvodzoviek. Ā«echoĀ»RobĆ­ čudnĆ© veci aj v zĆ”vislosti na tom, ako bol zostavenĆ½, ak vždy pouÅ¾Ć­vame Ubuntu alebo vždy Fedoru, nemĆ” to na nĆ”s vplyv, ale ak zmenĆ­me distribĆŗciu, urobĆ­ to.

Preto pouÅ¾Ć­vam Ā«printfĀ«, Čo ma nebolĆ­ hlavy a chovĆ” sa viac akoĀ«printfĀ»Z C aleboĀ«vytlačiÅ„Ā»V prĆ­pade Pythonu je to veľmi dĆ“ležitĆ©, ak chcete niekedy preniesÅ„ svoj skript do inĆ©ho programovacieho jazyka.

Pre rozsiahlejÅ”iu diskusiu mĆ“Å¾ete navÅ”tĆ­viÅ„ tĆ”to otĆ”zka z Unixu a Linuxu na Stack Exchange.

4. Prečƭtajte si VSTUPU pouÅ¾Ć­vateľa

VÅ”etko, čo napĆ­Å”eme za nĆ”zvom nĆ”Å”ho skriptu a pred stlačenĆ­m klĆ”vesu ENTER, sa automaticky uloÅ¾Ć­ do Å”peciĆ”lnych premennĆ½ch. Tieto premennĆ© sĆŗ typu $ X, kde X je čƭslo.

Ā«$0Ā»Označuje nĆ”zov nĆ”Å”ho skriptu a odĀ«$1Ā»Do nekonečna je vÅ”etko, čo sme napĆ­sali neskĆ“r, variabilnĆ©. NaprĆ­klad:

mačka << EOF >> test.sh #! / bin / bash # - * - KƓDOVANIE: UTF-8 - * - printf "\ $ 0 = $ 0 \ n" printf "\ $ 1 = $ 1 \ n" printf "\ $ 2 = $ 2 \ n" EOF chmod + x script.sh ./script.sh mĆ“j sĆŗbor.txt

VytvorĆ­me testovacĆ­ skript, urobĆ­me ho spustiteľnĆ½m a spustĆ­me ho s 2 parametrami. ZĆ­skame vĆ½stup z obrazovky:

$ 0 = ./script.sh $ 1 = moje $ 2 = file.txt

Pomocou Ćŗvodzoviek sme mohli ā€žmy file.txtā€œ odovzdaÅ„ ā€ž$ 1ā€œ.

MĆ“Å¾eme tiež načƭtaÅ„ INPUT pouÅ¾Ć­vateľa pomocou prĆ­kazu ā€žreadā€œ, ktorĆ½ priamo označuje premennĆŗ, kam chceme parameter uložiÅ„. NaprĆ­klad:

printf "AkĆ© je vaÅ”e meno? \ n" čƭtaÅ„ NƁZOV printf "DobrĆ½ deň, $ NAME. \ n"
Pri zaraďovanĆ­ premennĆ½ch buďte opatrnĆ­. ā€ž$ VAR = contentā€œ spĆ“sobĆ­ chybu, medzi znamienkom rovnosti, nĆ”zvom premennej a obsahom nemĆ“Å¾u byÅ„ medzery. SprĆ”vne použitie je ā€žVAR = obsahā€œ

5. VĆ½počty v Bash

Na to mĆ“Å¾eme použiÅ„ Ā«expresnĆ©Ā«, Pokiaľ nepotrebujeme zložitĆ© vĆ½počty. Je potrebnĆ© poznamenaÅ„ dve veci, prvĆ” je, že Ā«expresnĆ©Ā»PripĆŗŔńa iba celĆ© čƭsla, druhou je, že delenie vrĆ”ti celĆ½ vĆ½sledok, aby sme videli ostatnĆ©, ktorĆ© mĆ“Å¾eme použiÅ„Ā«%".

Zvyčajne chceme premennej priradiÅ„ vĆ½sledok expr. MĆ“Å¾eme to urobiÅ„ dvoma spĆ“sobmi:

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

MĆ“Å¾ete tiež preskočiÅ„ Ā«expresnĆ©Ā»PouÅ¾Ć­vanie dvojitĆ½ch zĆ”tvoriek:

VAR2 = $ (($ VAR1 / 100))
Pre ďalÅ”ie vysvetlenie Ā«expresnĆ©Ā»Alebo alternatĆ­vu, ktorĆ” pouÅ¾Ć­va celĆ© čƭsla, si mĆ“Å¾eÅ” pozrieÅ„ tento zĆ”znam KZKG ^ gaara.

6. podmienky

Už to bolo obÅ”Ć­rne napĆ­sanĆ© Ā«if" 'inak" 'ElifĀ»A podmienky. Dočƭtate sa v:

Chcem len zdĆ“razniÅ„ rozdiel medzi pouÅ¾Ć­vanĆ­m jednoduchĆ½ch hranatĆ½ch zĆ”tvoriek, Ā«[]Ā«, A dvojitĆ© zĆ”tvorky,Ā«[[]]Ā«, Za podmienok. S dvojitĆ½mi zĆ”tvorkami mĆ“Å¾eme použiÅ„ ďalÅ”ie podmienky:

  • Ā«&&Ā»Pre a
  • Ā«||Ā»Pre alebo

Použit "&&Ā»YĀ«||Ā»Pri jednoduchĆ½ch hranatĆ½ch zĆ”tvorkĆ”ch by mala byÅ„ každĆ” časÅ„ oddelenĆ” v samostatnĆ½ch hranatĆ½ch zĆ”tvorkĆ”ch. PrĆ­klad použitĆ½ pre časÅ„ skriptu, ktorĆ” sleduje, či je potrebnĆ© spustiÅ„ pomoc, by bol:

ak [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "- pomoc"]]; potom pomĆ“Å¾ fi

Tiež nĆ”m to uÅ”etrĆ­ to, že nebudeme musieÅ„ do Ćŗvodzoviek pĆ­saÅ„ nĆ”zvy premennĆ½ch, aby sme prediÅ”li chybĆ”m. NaprĆ­klad:

ak [$ 1 = 1]; potom printf "Parameter sa rovnĆ” 1."; fi ak ["$ 1" = 1]; potom printf "Parameter sa rovnĆ” 1."; fi ak [[$ 1 = 1]]; potom printf "Parameter sa rovnĆ” 1."; fi

Ak je sĆŗbor script.sh spustenĆ½ bez akĆ½chkoľvek parametrov, v prvom prĆ­pade by doÅ”lo k chybe:

bash: [: =: očakĆ”va sa unĆ”rny operĆ”tor
V bashčine sa znaky ā€ž=ā€œ a ā€ž==ā€œ interpretujĆŗ rovnako. To sa nestĆ”va v inĆ½ch programovacĆ­ch jazykoch, kde sa znak ā€ž=ā€œ pouÅ¾Ć­va iba na priraďovanie premennĆ½ch.

O čom sa eÅ”te nehovorilo, je Ā«puzdroĀ«, PouÅ¾Ć­va sa na zjednoduÅ”enieĀ«ifĀ«. Začnime na začiatku, keď nemĆ”me žiadne Ā«ifĀ»CelĆ½ kĆ³d sa vykonĆ”. Ak pridĆ”me podmienku Ā«ifĀ»Budeme maÅ„ dva prĆ­pady, jeden, v ktorom bude blok kĆ³du vo vnĆŗtriĀ«ifĀ»A druhĆ½ prĆ­pad, keď sa tento blok nevykonĆ”.

Ak pridĆ”me Ā«inakĀ«Budeme maÅ„ aj dva prĆ­pady, ale tieto dva prĆ­pady sa lĆ­Å”ia od tĆ½ch predchĆ”dzajĆŗcich. Pretože teraz budĆŗ dva bloky podmienenĆ©ho kĆ³du, A a B, a blok C, čo je zvyÅ”ok programu. A alebo B sa vykonĆ” a C. V predchĆ”dzajĆŗcom prĆ­pade to boli A a C alebo iba C.

Aby ste sa vyhli podmienkam pĆ­sania Ā«ako / inakā€žv rĆ”mciā€œinakĀ»A zjednoduÅ”iÅ„ čƭtanie kĆ³du, ktorĆ½ bol vytvorenĆ½Ā«ElifĀ«. Keď mĆ”me veľa podmienok zĆ”vislĆ½ch od predchĆ”dzajĆŗcej, naprĆ­klad rozsah čƭsel alebo typ:

VAR1 = 1 dolĆ”r, ak [[$ VAR1 = 1]]; potom printf "1 \ n" elif [[$ VAR1 = 2]]; potom printf "2 \ n" elif [[$ VAR1 = 3]]; potom printf "3 \ n" else printf "žiadny \ n" fi

V prĆ­pade poslednĆ©ho Ā«ElifĀ»Prečƭtajte si veľa podmienok. V prĆ­pade, že bude tento proces efektĆ­vny:

VAR1 = $ 1 prĆ­pad $ VAR v 1) printf "1 \ n" ;; 2) printf "2 \ n" ;; 3 | 4) printf "3 alebo 4, zĆ”leÅ¾Ć­ \ n" ;; *) printf "none \ n" ;; že C

Načƭta sa premennĆ”, v tomto prĆ­pade VAR1, a uvidĆ­ sa, či je ekvivalentnĆ” niektorĆ©mu z prĆ­padov, ak nie, vykonĆ” sa predvolenĆ½ prĆ­pad ā€ž*ā€œ. DvojitĆ© bodkočiarky sĆŗ ekvivalentnĆ© k Ā«rozbiÅ„Ā«, HovoriaĀ«puzdroĀ»To sa musĆ­ skončiÅ„.

Ā«puzdroĀ»Možno použiÅ„ aj ako postupnosÅ„Ā«ifĀ«, Za tĆ½mto Ćŗčelom musĆ­te namiestoĀ« ;; Ā»použiÅ„Ā« ;; & Ā»(pokračovaÅ„) (zastaviÅ„).

7. Slučky

V ľubovoľnom programovacom jazyku je znĆ”mych veľmi mĆ”lo slučiek. V Bash sĆŗ Ā«zatiaľ čo" 'kĆ½mĀ»YĀ«preĀ«. O tom už bolo v blogu napĆ­sanĆ©:

ExistujĆŗ dva typy slučiek Ā«preĀ«, Tie, ktorĆ© sĆŗ typuĀ«$ za VAR v LOQUESEAĀ»A čo sĆŗ typu CĀ«$ pre ((I = 0; I <= 10; I ++))Ā«. DruhĆ½ typ slučiek Ā«preĀ»SĆŗ veľmi užitočnĆ©, mĆ” 3 časti na začiatku cyklu:

  • DeklarĆ”cia a inicializĆ”cia premennĆ½ch (V tomto prĆ­pade pomocnĆ” premennĆ” "I = 0").
  • Podmienka vykonania (kĆ½m I je menÅ”ia alebo rovnĆ” 10).
  • ZvĆ½Å”enie pomocnej premennej

Podľa mĆ“jho nĆ”zoru je to najsilnejÅ”ia slučka zo vÅ”etkĆ½ch. PrĆ­klad, ktorĆ½ vytlačƭ vÅ”etky čƭsla od 0 do 10 vrĆ”tane:

#! / bin / bash for ((I = 0; I <= 10; I ++)); do printf "$ I \ n" hotovo

8. Funkcie

Existuje niekoľko vecĆ­, ktorĆ© nĆ”m Bash neumožňuje, že? Na prvĆ½ pohľad vĆ”m funkcie bash brĆ”nia v tom, aby ste robili 3 veci: deklarovanie lokĆ”lnych premennĆ½ch vo funkciĆ”ch, odovzdĆ”vanie parametrov funkciĆ”m a nĆ”vrat parametrov. VÅ”etko mĆ” rieÅ”enie.

Nerobte nič ako:

#! / bin / bash VAR = 1 printc "$ VAR \ n" funkcia ahoj () {VAR = 2 printf "$ VAR \ n"} ahoj printf "$ VAR \ n"

Vytlačƭ sa na obrazovku 1, 2 a 2.

Ak chcete deklarovaÅ„ lokĆ”lne premennĆ©, pridajte Ā«miestneĀ»Pri deklarovanĆ­:

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

Toto vytlačƭ 1, 1, 2, 1 na obrazovku.

Ako odovzdƔvate parametre funkcii?

#! / bin / bash # - * - KƓDOVANIE: UTF-8 - * - funkcia ahoj () {printf "Hello $ 1 \ n"}

printf "Ako sa volĆ”Å”? \ n"
prečƭtaÅ„ VAR1
ahoj $ VAR1

Ako sa vrƔtia parametre?

#! / bin / bash # - * - KƓDOVANIE: UTF-8 - * - funkcia ahoj () {printf "Hello holita"} printf "Ako sa volĆ”Å”? \ n" čƭtaj VAR1 VAR1 = $ (ahoj) # TU printf "$ VAR1 $ VAR2 \ n"

Ako vidĆ­te, mĆ” to dve nevĆ½hody, mĆ“Å¾ete vrĆ”tiÅ„ iba jeden parameter, ktorĆ½m mĆ“Å¾e byÅ„ vektor šŸ˜€, a ak chcete vrĆ”tiÅ„ parameter, z tejto funkcie už nemĆ“Å¾ete tlačiÅ„ na obrazovku.

Viac vecĆ­ o funkciĆ”ch nĆ”jdete na [url=https://blog.desdelinux.net/programando-en-bash-parte-3/]tento člĆ”nok z Usemoslinux[/url].

9. Getops

Jedna z poslednĆ½ch vecĆ­, ktorĆ© potrebujete o Bashi vedieÅ„, aby ste mohli vytvĆ”raÅ„ zložitĆ© skripty, sĆŗ Ā«getopsĀ«. SlĆŗži na odovzdanie možnostĆ­ do skriptu bez ohľadu na poradie. Jedinou nevĆ½hodou je, že ovplyvňuje iba krĆ”tke možnosti:

#! / bin / bash # - * - KƓDOVANIE: UTF-8 - * - VARC = 0 funkcia help () {printf "PomocnĆ” sprĆ”va \ n" exit} ak [[-z $ 1]]; potom pomĆ“Å¾te fi zatiaľ čo getopts: ha: b: c OPT; urobte prĆ­pad $ OPT v h) pomoc ;; :) Pomoc ;; a) VARA = $ OPTARG ;; b) VARB = $ OPTARG ;; c) VARC = 1 ;; \?) Pomoc ;; esac done # HlavnĆ½ blok skriptu, ktorĆ½ # robĆ­ veci s VARA, VARB a VARC

Ā«getoptsĀ»Postupne čƭta možnosti, takže je potrebnĆ” slučka.

ExistujĆŗ 2 typy možnostĆ­, ktorĆ© je možnĆ© prejsÅ„ pomocou Ā«getopts,:

  • Parametre nazĆ½vanĆ© vlajky, v tomto prĆ­pade -c alebo -h. SĆŗ označenĆ© pĆ­smenom, ktorĆ© chceme použiÅ„. SĆŗ ako boolovskĆ© premennĆ©, Ā«pravdivĆ½Ā»(SĆŗ) aleboĀ«nepravdivĆ½ā€ž(Nie sĆŗ tu).
  • Parametre s prĆ­sluÅ”nĆ½mi argumentmi, -a čokoľvek, -b čokoľvek. SĆŗ označenĆ© pĆ­smenom, ktorĆ© chceme, s dvojbodkou nižŔie. Argument je uloženĆ½ v OPTARG (tento nĆ”zov je nezmeniteľnĆ½).
DvojitĆ© počiatočnĆ© body ukazujĆŗ, že neobsahujĆŗ chyby.

Čo robƭ tento skript?

ZobrazĆ­ pomocnĆŗ sprĆ”vu, keď nie je zadanĆ” žiadna možnosÅ„, keď je zadanĆ½ parameter "-h", keď je zadanĆ½ neplatnĆ½ parameter (naprĆ­klad "-x", toto je urobenĆ© pomocou "\?") Alebo keď je platnĆ½ parameter bez argument (":"). V ostatnĆ½ch prĆ­padoch uloÅ¾Ć­ prĆ­tomnosÅ„ ā€ž-cā€œ ako 1 vo VARC a hodnoty odovzdanĆ© s ā€ž-aā€œ a ā€ž-bā€œ vo VARA a VARB.


Zanechajte svoj komentƔr

VaÅ”a e-mailovĆ” adresa nebude zverejnenĆ”. PovinnĆ© položky sĆŗ označenĆ© *

*

*

  1. ZodpovednĆ½ za Ćŗdaje: Miguel Ɓngel GatĆ³n
  2. ƚčel Ćŗdajov: KontrolnĆ½ SPAM, sprĆ”va komentĆ”rov.
  3. LegitimĆ”cia: VĆ”Å” sĆŗhlas
  4. Oznamovanie Ćŗdajov: ƚdaje nebudĆŗ poskytnutĆ© tretĆ­m stranĆ”m, iba ak to vyplĆ½va zo zĆ”kona.
  5. Ukladanie dĆ”t: DatabĆ”za hostenĆ” spoločnosÅ„ou Occentus Networks (EU)
  6. PrĆ”va: Svoje Ćŗdaje mĆ“Å¾ete kedykoľvek obmedziÅ„, obnoviÅ„ a vymazaÅ„.

  1.   živĆ½ dijo

    HLAVNE. NehovorĆ­m viac U_U

  2.   Miguel dijo

    Ahojte veľmi dobrĆ½ člĆ”nok.
    Hej, dal si oprƔvnenie sudo + x namiesto chmod + x

    1.    Henry dijo

      $ sudo chmod + x script.sh
      (Aby som bol presnejÅ”Ć­, hehe)

      Aha, gratulujem a ďakujem!

  3.   ohňostroj dijo

    Veľmi dobrĆ½ prĆ­spevok, skutočne vĆ”m blahoželĆ”m, len tak ďalej, pozdravujem

  4.   Gustavo dijo

    A ak chcete, aby bol skript pri jeho spustenĆ­ viditeľnĆ½, krok za krokom, aby ste videli naprĆ­klad, ako sa chovajĆŗ premennĆ©, podmienky a vÅ”etko, mĆ“Å¾ete použiÅ„:

    sh -x skript

    pozdravy

  5.   tam dijo

    Kus opatrovnĆ­ctva. VynikajĆŗci a veľmi dobre vysvetlenĆ½.
    Ďakujem.

  6.   gabriel dijo

    VynikajĆŗci prĆ­spevok na tĆŗto tĆ©mu šŸ˜‰

  7.   Mario Guillermo Zavala Silva dijo

    Veľmi zaujĆ­mavĆ© a dĆ“ležitĆ©, ďakujem za informĆ”cie ....
    Na zdravie !!!

  8.   Nie zbrooklynu dijo

    Ďakujem vÅ”etkĆ½m za blahoželanie, pokiaľ ide o prĆ­kaz Miguel, nedovolĆ­ mi po zverejnenĆ­ upraviÅ„ zĆ”znam. Bude to musieÅ„ urobiÅ„ elav, myslĆ­m si.

  9.   AdriĆ”n dijo

    Veľmi dobre!

    NajskĆ“r som vĆ”m chcel zablahoželaÅ„ k prĆ­spevku, zistil som, že je ľahko pochopiteľnĆ½ a skutočne pomĆ”ha dodržiavaÅ„ pokyny, aby ste programovali dobre aj v bash, najmƤ pre ľudĆ­, ktorĆ­ s programovanĆ­m začƭnajĆŗ.

    NaÅ”iel som vÅ”ak niekoľko detailov, ktorĆ© by podľa mňa mali byÅ„ opravenĆ©.

    PrvĆ½: v časti Ā«2. Å TRUKTƚRA SKRIPTU Ā»funkcia nie je uzavretĆ”, čo spĆ“sobĆ­ problĆ©my pri jej vykonĆ”vanĆ­ v skripte.
    RieÅ”enĆ­m by bolo pridaÅ„ do neho zatvĆ”raciu zĆ”tvorku hneď po prĆ­kaze ā€žexitā€œ.

    DruhĆ”: v časti Ā«4. PREČƍTAJTE SI VKLAD UÅ½ĆVATEĽA ā€œpotvrdzujete, že parametre, ktorĆ© mĆ“Å¾e pouÅ¾Ć­vateľ zadaÅ„, sa pohybujĆŗ od 0 do nekonečna, vĆ½razā€ž bash ā€œvÅ”ak bude interpretovaÅ„ iba od 0 do 9 dolĆ”rov, pretože 10 dolĆ”rov by sa rovnalo 1 + 0.
    Ak chcete vyrieÅ”iÅ„ tento problĆ©m, mĆ“Å¾ete použiÅ„ prĆ­kaz ā€žshiftā€œ na zĆ­skanie nasledujĆŗcich premennĆ½ch. Alebo zadajte premennĆŗ v zloženĆ½ch zĆ”tvorkĆ”ch ā€ž$ {10}ā€œ, aby bash brala hodnoty spolu, nie ako $ 1 + 0.

    Bez ďalÅ”Ć­ch rečƭ pozdravy!

    1.    Nie zbrooklynu dijo

      Ďakujeme za vĆ”Å” komentĆ”r. ƚplne sa nepodarilo vysvetliÅ„ sprĆ”vne použitie ukončenia, a to ani v skripte, ani vo funkciĆ”ch. Pokiaľ ide o $ {10}, nikdy som toľko neodkĆ”zal, takže som sa s tĆ½mto problĆ©mom nestretol, je dobrĆ© vedieÅ„, že existuje rieÅ”enie, ktorĆ© ma vedie (novĆŗ vec, ktorĆŗ som sa dnes dozvedel, som už prečiarkol šŸ˜€).

  10.   chanio dijo

    Dakujem velmi pekne za clanok! NiektorĆ© veci, ktorĆ© spomeniete, eÅ”te stĆ”le nemali objasnenie. NaprĆ­klad getops.
    V časti vĆ½stupov z obrazovky ste museli spomenĆŗÅ„ mačku, ktorĆŗ ste neskĆ“r spomenuli ...
    mačka <
    ***************************************
    * TĆ”to forma je veľmi expresĆ­vna *
    ***************************************
    EOF

    Vo vaÅ”om prĆ­klade:
    mačka << EOF >> test.sh
    Mali by sme spomenĆŗÅ„ dve veci ... >> je to ā€žappendā€œ, to znamenĆ”, že ak zopakujete ten istĆ½ prĆ­kaz, budete maÅ„ celĆ½ skript duplikovanĆ½ ... Mali by ste použiÅ„ iba jeden ...
    mačka << EOF> script.sh
    Ɓno, malo by sa to tiež volaÅ„ script.sh
    Potom dovnĆŗtra
    ak [-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "ā€“pomoc"]]; potom
    pomĆ“cÅ„
    fi

    MyslĆ­m, že by to malo byÅ„ napĆ­sanĆ© ...
    ak [[-z "$ 1"] || ["$ 1" == "-h"] || ["$ 1" == "ā€“pomoc"]]; potom
    ...

    Od spoločnosti BASH je možnĆ© zistiÅ„ oveľa viac.
    Mohli by ste to nazvaÅ„ ā€žZƁKLADYā€œ? šŸ™‚
    NaprĆ­klad parameter 'testeri' mĆ” rĆ”d -z, aby zistil, či sĆŗ prĆ”zdne, alebo -f, či existuje ako sĆŗbor.

    EÅ”te raz ďakujeme za vaÅ”u nĆ”mahu.
    Alberto

  11.   clow_eriol dijo

    Veľmi dobrĆ½ tutoriĆ”l pre bash skript!

  12.   OCZ dijo

    -- KƓDOVANIE: UTF-8 --

    Toto je prvĆ½krĆ”t, čo som videl tento riadok nastaviÅ„ kĆ³dovanie znakov v bash skripte. ZdĆ” sa mi to skĆ“r ako Python ako Bash. Je to skutočne nevyhnutnĆ©? Hľadal som referenciu na Google, ale nemĆ“Å¾em nič nĆ”jsÅ„, mĆ”te po ruke odkaz, ktorĆ½ hovorĆ­ o tejto zĆ”ležitosti? KonkrĆ©tne o vhodnosti tejto linky.

    Podľa mĆ“jho nĆ”zoru na pĆ­sanie Bash skriptov pomocou UTF-8 stačƭ uložiÅ„ iba samotnĆ½ textovĆ½ sĆŗbor (bez kusovnĆ­ka) a maÅ„ sprĆ”vne nastavenĆ© určitĆ© premennĆ© prostredia (LANG a LC_ *).
    Potom je zjavne nevyhnutnĆ©, aby sa vykonanĆ© prĆ­kazy pripravili na inĆ© kĆ³dovanie ako ASCII. NaprĆ­klad, ak chceme Ć­sÅ„ na veľkĆ© pĆ­smenĆ”, zdĆ” sa, že to nefunguje:
    Ā«Echo Ć”Ć©Ć­Ć³Ćŗ | tr az AZ Ā»
    o:
    Ā«Echo Ć”Ć©Ć­Ć³Ćŗ | tr [: spodnĆ½:] [: hornĆ½:] Ā»
    a je lepŔie použiń:
    Ā«Echo Ć”Ć©Ć­Ć³Ćŗ | awk '{print toupper ($ 0)}' Ā».

    1.    Nie zbrooklynu dijo

      O "kĆ³dovanieĀ»V tomto blogu už bolo spomenutĆ©:

      Bash: ako vytvoriÅ„ spustiteľnĆ½ skript
      Skript pomocnej inÅ”talĆ”cie

    2.    borriquito ako ty dijo

      Niekto ma opravte, ale ten kĆ³dovacĆ­ riadok (# -- KƓDOVANIE: UTF-8 --) NemĆ” to nič spoločnĆ© s bashom alebo Å”krupinou: je to riadok komentĆ”ra (začƭna sa na #) a slĆŗži EDITOROVI na to, aby povedal EDITOROVI, že pouÅ¾Ć­vame na pĆ­sanie skriptu (vim, emacs ...) kĆ³dovanie sĆŗboru.

      V skutočnosti bash takĆ½ riadok nevidĆ­, pretože ide o komentĆ”rovĆ½ riadok.

  13.   JoRgE-1987 dijo

    VynikajĆŗci nĆ”vod, pretože Sysadmin vie, že skriptovanie v jazyku Bash je nevyhnutnĆ©, a preto je užitočnĆ© pre vÅ”etko.

    Veľmi veľmi dobrĆ½!

    ZdravĆ­m!

  14.   Edward Cuomo dijo

    Ak je to pre kohokoľvek užitočnĆ©, tu je niekoľko použitĆ­ a prĆ­kladov na vytvorenie vlastnĆ½ch skriptov: https://github.com/reduardo7/hsabx

  15.   Čierne Lito dijo

    Veľmi dobre. NovĆ© veci, ktorĆ© sa dajĆŗ pridaÅ„ do mojich skriptov. KĆ³dovanĆ” vec a vec printf ju nemali.
    Ďakujem!!!

  16.   xxxtonixxx dijo

    Ahoj dobrĆ½ člĆ”nok! Tento si nechĆ”vam pre obľĆŗbenĆ©, bolo by peknĆ© opraviÅ„, čo nie je v poriadku, a dokonca ho rozÅ”Ć­riÅ„ o ďalÅ”Ć­ obsah. Potlesk za vÅ”etky tieto informĆ”cie !!!!