0. Register
- Veci, ktorĆ© sa dejĆŗ vƤÄÅ”ine ľudĆ
- Å truktĆŗra scenĆ”ra
- TlaÄte na obrazovke
- PreÄĆtajte si VSTUPU použĆvateľa
- VĆ½poÄty v bash
- Podmienky
- SluÄky
- funkcie
- 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
BIN = "prieÄinok, kde mĆ”me skripty" PATH = "$ BIN $ PATH"
2. Å truktĆŗra scenĆ”ra
- hlava
- DefinĆcia globĆ”lnych premennĆ½ch
- Pomoc
- funkcie
- 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.
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.
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"
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))
6. podmienky
Už to bolo obÅ”Ćrne napĆsanĆ© Ā«if" 'inak" 'ElifĀ»A podmienky. DoÄĆtate sa v:
- Programovanie v Bashi: 1. ÄasÅ„
- Bash: ak, potom, inƩ podmienky
- Skontrolujte, Äi sĆŗbor alebo prieÄinok existuje alebo nie, a ÄalÅ”ie pomocou sluÄky if
- Programovanie v Bashi: 2. ÄasÅ„
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
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Å„.
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.
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Ć½).
Ä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.
HLAVNE. NehovorĆm viac U_U
Ahojte veľmi dobrĆ½ ÄlĆ”nok.
Hej, dal si oprƔvnenie sudo + x namiesto chmod + x
$ sudo chmod + x script.sh
(Aby som bol presnejÅ”Ć, hehe)
Aha, gratulujem a Äakujem!
Veľmi dobrĆ½ prĆspevok, skutoÄne vĆ”m blahoželĆ”m, len tak Äalej, pozdravujem
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
Kus opatrovnĆctva. VynikajĆŗci a veľmi dobre vysvetlenĆ½.
Äakujem.
VynikajĆŗci prĆspevok na tĆŗto tĆ©mu š
Veľmi zaujĆmavĆ© a dĆ“ležitĆ©, Äakujem za informĆ”cie ....
Na zdravie !!!
Ä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.
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!
Ä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 š).
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
Veľmi dobrĆ½ tutoriĆ”l pre bash skript!
-- 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)}' Ā».
O "kĆ³dovanieĀ»V tomto blogu už bolo spomenutĆ©:
Bash: ako vytvoriÅ„ spustiteľnĆ½ skript
Skript pomocnej inÅ”talĆ”cie
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.
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!
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
Veľmi dobre. NovĆ© veci, ktorĆ© sa dajĆŗ pridaÅ„ do mojich skriptov. KĆ³dovanĆ” vec a vec printf ju nemali.
Äakujem!!!
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 !!!!