Průvodce pro začátečníky k BASH

Vítejte u 2. části série Beginners Guide To 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 vybudují své znalosti a doufejme, že na konci budou schopni psát docela chytré skripty.

Minule jsme kryli vytvoření vašeho prvního skriptu který jednoduše zobrazoval slova „Ahoj světe“. Pokrývá témata, jako jsou textové editory, jak otevřít okno terminálu, kam umístit skripty, jak zobrazit slova „Ahoj světe“ a některé jemnější body na útěkových znacích, jako jsou uvozovky ("").

Tato část se zabývá vstupními parametry. Existují další průvodci které učí takové věci, ale až příliš často skákají do některých věcí na poměrně nízké úrovni a možná poskytují příliš mnoho informací.

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

Ve skriptu "Ahoj světe" z posledního tutoriálu to bylo všechno velmi statické. Scénář toho vlastně vůbec moc neudělal.

Jak bychom mohli zlepšit scénář "Ahoj světe"?

A co skript, který pozdraví osobu, která jej spouští? Místo „Hello World“ se řekne „Ahoj Gary“, „Ahoj Tim“ nebo „Ahoj Dolly“.

Bez schopnosti přijímat vstupní parametry bychom museli napsat tři skripty "hellogary.sh", "hellotim.sh" a "hellodolly.sh".

Jak vytvořit parametr

Tím, že našemu skriptu umožníme číst vstupní parametry, můžeme použít jeden skript k pozdravu 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: (o příkazu cd)

cd skripty

Vytvořte nový skript s názvem greetme.sh zadáním následujícího: (o dotykovém příkazu)

dotkněte se greetme.sh

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

nano pozdravme.sh

Do nano zadejte následující text:

#!/bin/bash
echo "ahoj $@"

lis CTRL a Ó pro uložení souboru a poté CTRL a X pro zavření souboru.

Linux základní skript Bash s parametry

Chcete-li skript spustit, zadejte do příkazového řádku následující příkaz a nahraďte je svým jménem.

sh pozdravme.sh Tim

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

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

První řádek má řádek #!/bin/bash, který se používá k identifikaci souboru jako bash skriptu.

Druhý řádek používá příkaz echo k echo slova ahoj a pak je tu zvláštní zápis $@. (o příkazu echo)

$@ se rozšíří 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 „hello tim“. Pokud zadáte „greetme.sh tim smith“, zobrazí se slova „hello tim smith“.

Použití příkazů Echo

Pro skript greetme.sh může být hezké pozdravit pouze pomocí křestního jména. Když se s někým setkají, nikdo neřekne „Ahoj Gary Newell“, ale může říct „Ahoj Gary“.

Změňme skript tak, aby používal pouze první parametr. Otevřete skript greetme.sh v nano zadáním následujícího:

nano pozdravme.sh

Změňte skript tak, aby četl následovně:

#!/bin/bash
echo "ahoj $1"

Uložte skript stisknutím CTRL a Ó a poté ukončete stisknutím CTRL a X.

Linux Bash skript s individuálním parametrem

Spusťte skript, jak je uvedeno níže (nahraďte název svým):

sh pozdravme.sh gary newell

Když skript spustíte, řekne jednoduše: "Ahoj Gary" (nebo doufejme "ahoj" a jak se jmenuješ).

Linux spouští Bash skript s jedním parametrem

1 za symbolem $ v podstatě říká příkazu echo, použijte první parametr. Pokud nahradíte $1 $2, zobrazí se "hello newell" (nebo jaké je vaše příjmení). Můžete také přidat $2 za $1, abyste získali celé jméno.

Linux Bash skript s více parametry

Spuštění s více než jedním parametrem je zobrazí na místech odpovídajících pořadí, v jakém byly zadány.

Linux spustit skript s více parametry

Mimochodem, pokud byste nahradili $2 $3 a spustili skript pouze se 2 parametry, výstup by byl jednoduše "Ahoj."

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žívat 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ásledovně:

#!/bin/bash
echo "zadali jste $# jmen"
echo "ahoj $@"

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

Parametry počtu skriptů Linux Bash

$# na 2. řádku zobrazuje počet zadaných parametrů.

Doposud to vše bylo nové, ale nepříliš užitečné. Kdo potřebuje skript, který jednoduše zobrazuje „ahoj“?

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

Echo prohlášení vs. Vstupní parametry

Skutečné použití příkazů echo je poskytovat uživateli podrobný a smysluplný výstup. Pokud si dokážete představit, že chcete udělat něco složitého, co zahrnuje nějaké vážné číslování a manipulaci se soubory/složkami, bylo by užitečné zobrazit uživateli, co se děje v každém kroku způsob.

Naproti tomu vstupní parametry činí váš skript interaktivní. Bez vstupních parametrů byste potřebovali desítky skriptů, které všechny dělají velmi podobné věci, ale s mírně odlišnými názvy.

Vzhledem k tomu všemu jsou zde některé další užitečné vstupní parametry, které je dobré znát, a všechny je zahrnu do jednoho fragmentu kódu.

Otevřete skript greetme.sh a upravte jej následovně:

#!/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 jej svým jménem).

sh pozdravme.sh 

Tentokrát skript zobrazí následující:

Název souboru: greetme.sh
ID procesu: 18595

zadali jste 2 jména
ahoj gary newell
Spouštěcí skript Linux Bash s dalšími informacemi

$0 na prvním řádku skriptu zobrazuje název skriptu, který spouštíte. Všimněte si, že je to dolar nula a ne dolar o.

$$ na druhém řádku zobrazuje ID procesu skriptu, který spouštíte. Proč je to užitečné? Pokud spouštíte skript v popředí, můžete jej zrušit pouhým stisknutím CTRL a C. Pokud jste spustili skript na pozadí a začal se opakovat a dělat to samé znovu a znovu nebo začal poškozovat váš systém, museli byste ho zabít.

Chcete-li ukončit skript běžící na pozadí, potřebujete ID procesu skriptu. Nebylo by dobré, kdyby skript dal id procesu jako součást svého výstupu? (o příkazech ps a kill)

Zabalit...

Nakonec, než skončíme s tímto tématem, je důležité prodiskutovat, kam výstup směřuje. Pokaždé, když byl skript doposud spuštěn, výstup se zobrazil 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ásledovně:

sh greetme.sh gary > greetme.log

Symbol > ve výše uvedeném příkazu vypíše text „hello gary“ do souboru s názvem greetme.log.

Pokaždé, když spustíte skript se symbolem >, přepíše obsah výstupního souboru. Pokud byste raději přidali k souboru, nahraďte > za >>.

Nyní byste měli být schopni psát text na obrazovku a přijímat vstupní parametry.