Skip to content

Průvodce BASH pro začátečníky – vstupní parametry

6 de Srpen de 2021
bashtutorial 56a5aaf23df78cf77289544e 5c93ab5646e0fb0001d0a9c9

Vítejte u 2. dílu série Začátečníci průvodce BASH, který je jedinečný v tom, že je to jediný BASH tutoriál napsaný začátečníkem pro začátečníky. Čtenáři této příručky si prohloubí své znalosti a doufejme, že do konce budou schopni napsat docela chytré skripty. Minule jsme se zabývali vytvořením vašeho prvního skriptu, který jednoduše zobrazil slova „Hello World“. Zahrnuje témata, jako jsou textové editory, jak otevřít okno terminálu, kam umístit skripty, jak zobrazit slova „Hello World“ a některé jemnější body na únikových znacích, jako jsou uvozovky („“). Tato část se zabývá vstupními parametry. Existují i ​​jiní průvodci, kteří učí tento druh věcí, ale příliš často skáčou do nějakých poměrně nízkoúrovňových věcí a možná poskytují příliš mnoho informací.

Skript parametrů přidává přizpůsobení

Ve skriptu „Hello World“ z posledního tutoriálu to bylo všechno velmi statické. Scénář toho vlastně moc neudělal.

Jak bychom mohli zlepšit skript „Hello World“?

A co skript, který pozdraví osobu, která ho spouští? Místo „Hello World“ řekne „Hello Gary“, „Hello Tim“ nebo „Hello Dolly“. Bez schopnosti přijímat vstupní parametry bychom potřebovali napsat tři skripty „hellogary.sh“, „hellotim.sh“ a „hellodolly.sh“.

Jak vytvořit parametr

Tím, že umožníme našemu skriptu číst vstupní parametry, můžeme použít jeden skript k přivítání kohokoli. Chcete -li to provést, otevřete okno terminálu (CTRL + ALT + T) a přejděte do složky skriptů zadáním následujícího příkazu: (o příkazu cd) cd skripty

Vytvořte nový skript nazvaný pozdravme.sh zadáním následujícího: (o příkazu dotyku) dotkněte se pozdravu.sh

Otevřete skript ve svém oblíbeném editoru zadáním následujícího: (o příkazu nano) nano greetme.sh

Do nano zadejte následující text: #!/Bin/bash
echo „ahoj $@“

lis CTRL a Ó soubor uložte a poté CTRL a X zavřete soubor.

Ke spuštění skriptu zadejte do příkazového řádku následující text, který nahradíte svým jménem. sh pozdrav. sh Tim

Pokud spustím skript se svým jménem, ​​zobrazí se slova „Ahoj Gary“.

Linux spouští základní skript s parametry

První řádek obsahuje řádek #!/Bin/bash, který slouží k identifikaci souboru jako skriptu bash. Druhý řádek používá příkaz echo k ozvěně slovo ahoj a pak je tu podivný zápis $@. (o příkazu echo) $@ se rozbalí a zobrazí každý parametr, který byl zadán spolu s názvem skriptu. Pokud tedy zadáte „sh greetme.sh tim“, zobrazí se slova „ahoj tim“. Pokud zadáte „greetme.sh tim smith“, zobrazí se slova „ahoj tim smith“.

Pomocí příkazů Echo

Mohlo by být hezké, kdyby skript pozdravu.sh pozdravil pomocí pouze křestního jména. Když někdo někoho potká, nikdo neřekne: „Ahoj, Gary Newell,“ ale mohl by říct: „Ahoj Gary,“ Pojďme změnit skript tak, aby používal pouze první parametr. Otevřete skript greetme.sh v nano zadáním následujícího: nano greetme.sh

Změňte skript tak, aby zněl takto: #!/Bin/bash
echo „ahoj $ 1“

Skript uložte stisknutím CTRL a Ó a poté ukončete stisknutím CTRL a X.

Skript Linux Bash s individuálním parametrem

Spusťte skript, jak je znázorněno níže (nahraďte název svým): sh greetme.sh gary newell

Když spustíte skript, jednoduše řekne „Ahoj Gary“ (nebo doufejme „ahoj“ a ať se jmenujete jakkoli).

Linux spustí skript Bash s jediným parametrem

1 za symbol $ v zásadě říká příkazu echo, použijte první parametr. Pokud nahradíte 1 $ za 2 $, zobrazí se „ahoj newell“ (nebo jaké je vaše příjmení). Můžete také přidat 2 $ po 1 $, abyste získali úplné jméno.

Skript Linux Bash s více parametry

Když spustíte více než jeden parametr, zobrazí se na místech odpovídajících pořadí, ve kterém byly zadány.

Linuxový skript s více parametry

Mimochodem, pokud byste nahradili $ 2 za $ 3 a spustili skript s pouhými 2 parametry, výstup by byl jednoduše „Hello“.

Jak zobrazit počet použitých parametrů

Je možné zobrazit a zpracovat počet skutečně zadaných parametrů a pozdější tutoriály vám ukážou, jak použít počet parametrů pro účely ověření. Chcete -li zobrazit počet zadaných parametrů, otevřete skript greetme.sh (nano greetme.sh) a upravte text následujícím způsobem: #!/Bin/bash
echo „zadali jste $# jmen“
echo „ahoj $@“

lis CTRL a Ó pro uložení skriptu a CTRL a X ukončit nano.

Parametry počtu skriptů Linux Bash

$# Na 2. řádku zobrazuje počet zadaných parametrů. Zatím to všechno bylo nové, ale ne příliš užitečné. Kdo potřebuje skript, který jednoduše zobrazí „ahoj“?

Linux spouští parametry počítání skriptů bash

Echo Statistiky vs. Vstupní parametry

Skutečným využitím příkazů echo je poskytnout uživateli podrobný a smysluplný výstup. Pokud si dokážete představit, že chcete udělat něco komplikovaného, ​​což zahrnuje vážné zkracování čísel a manipulaci se soubory/složkami, bylo by užitečné uživateli ukázat, co se děje v každém kroku. Naproti tomu vstupní parametry činí váš skript interaktivní. Bez vstupních parametrů byste potřebovali desítky skriptů, které by dělaly velmi podobné věci, ale s mírně odlišnými názvy. Vzhledem k tomu všemu existuje několik dalších užitečných vstupních parametrů, které je dobré vědět, a zahrnu je všechny do jednoho fragmentu kódu. Otevřete skript pozdravu.sh a upravte jej takto: #!/Bin/bash
echo „Název souboru: $ 0“
echo „ID procesu: $$“
echo „——————————-„
echo „zadali jste $# jmen“
echo „ahoj $@“

lis CTRL a Ó pro uložení souboru a CTRL a X k východu.

Další informace o skriptu Linux Bash

Nyní spusťte skript (nahraďte svým jménem). sh pozdravuj.sh

Tentokrát skript zobrazí následující: Název souboru: greetme.sh
ID procesu: 18595
——————————
zadali jste 2 jména
ahoj gary newell

Spuštění skriptu Linux Bash s dalšími informacemi

$ 0 na prvním řádku skriptu zobrazuje název skriptu, který používáte. Všimněte si, že je to dolar nula a ne dolar o. $$ na druhém řádku zobrazuje ID procesu skriptu, který používáte. Proč je to užitečné? Pokud spouštíte skript v popředí, můžete jej zrušit jednoduchým stisknutím CTRL a C. Pokud jste spustili skript na pozadí a začal se opakovat a dělat totéž znovu a znovu nebo začal způsobovat poškození vašeho systému, museli byste ho zabít. Chcete -li zabít skript spuštěný na pozadí, potřebujete ID procesu skriptu. Nebylo by dobré, kdyby skript dal jako součást výstupu ID procesu? (o příkazech ps a kill)

Zabalit …

Nakonec, než skončíme s tímto tématem, je důležité diskutovat, kam jde výstup. Pokaždé, když se skript dosud spustil, byl výstup zobrazen na obrazovce. Je zcela běžné, že výstup skriptu je zapsán do výstupního souboru. Chcete -li to provést, spusťte skript následujícím způsobem: sh greetme.sh gary> greetme.log

Symbol> ve výše uvedeném příkazu vydá text „ahoj gary“ do souboru s názvem pozdravme.log. Pokaždé, když spustíte skript se symbolem>, přepíše obsah výstupního souboru. Pokud chcete přidat soubor, nahraďte> znakem >>. Nyní byste měli být schopni psát text na obrazovku a přijímat vstupní parametry.