GNU/Linux >> Znalost Linux >  >> Linux

Bash Beginner Series #1:Vytvořte a spusťte svůj první skript Bash Shell

Pokud to musíte udělat více než jednou, zautomatizujte to!

Často se přistihnete, že v Linuxu opakujete jeden úkol znovu a znovu. Může to být jednoduchá záloha adresáře nebo to může být čištění dočasných souborů nebo dokonce klonování databáze.

Automatizace úlohy je jedním z mnoha užitečných scénářů, kde můžete využít sílu bash skriptování.

Dovolte mi ukázat vám, jak vytvořit jednoduchý bash shell skript, jak spustit bash skript a jaké jsou věci, které musíte vědět o shell skriptování.

Vytvořte a spusťte svůj první shell skript

Nejprve vytvořte nový adresář s názvem scripts, který bude hostit všechny naše bash skripty.

mkdir scripts
cd scripts

Nyní v tomto 'adresáři skriptů' vytvořte nový soubor s názvem hello.sh pomocí příkazu cat:

cat > hello.sh

Vložte do něj následující řádek zadáním do terminálu:

echo 'Hello, World!'

Stisknutím Ctrl+D uložíte text do souboru a opustíte příkaz cat.

Můžete také použít textový editor založený na terminálu, jako je Vim, Emacs nebo Nano. Pokud používáte stolní Linux, můžete k přidání textu do tohoto souboru použít také grafický textový editor, jako je Gedit.

V zásadě tedy používáte příkaz echo k tisku „Hello World“. Tento příkaz můžete použít přímo v terminálu, ale v tomto testu jej spustíte pomocí skriptu shellu.

Nyní udělejte soubor hello.sh spustitelný pomocí příkazu chmod následovně:

chmod u+x hello.sh

A nakonec spusťte svůj první skript shellu tak, že před hello.sh uvedete požadovaný shell „bash“:

bash hello.sh

Zobrazí se Hello, World! vytištěné na obrazovce. To byl pravděpodobně ten nejjednodušší program Hello World, jaký jste kdy napsali, že?

Zde je snímek obrazovky všech kroků, které jste viděli výše:

Převeďte svůj shell skript na bash skript

Zmatený? Zatím se nenechte zmást. Vysvětlím vám věci.

Bash, což je zkratka pro „Bourne-Again shell“, je pouze jedním typem z mnoha dostupných shellů v Linuxu.

Shell je interpret příkazového řádku, který přijímá a spouští příkazy. Pokud jste někdy spouštěli jakýkoli příkaz Linuxu, pak jste použili shell. Když otevřete terminál v Linuxu, máte již spuštěný výchozí shell vašeho systému.

Bash je často výchozí shell ve většině distribucí Linuxu. To je důvod, proč je bash často synonymem pro shell.

Shell skripty mají často téměř stejnou syntaxi, ale někdy se také liší. Například index pole začíná na 1 v Zsh místo 0 v bash. Skript napsaný pro Zsh shell nebude fungovat stejně v bash, pokud má pole.

Abyste se vyhnuli nepříjemným překvapením, měli byste sdělit interpretovi, že váš shell skript je napsán pro bash shell. Jak to děláš? Používáte shebang!

Řádek SheBang na začátku skriptu shell

Řádek „#!/bin/bash“ je označován jako linie shebang a v některé literatuře se nazývá linie hashbang, a to proto, že začíná dvěma znaky hash '#' a bang '!'.

#! /bin/bash

echo 'Hello, World!'

Když zahrnete řádek „#!/bin/bash“ úplně nahoře ve vašem skriptu, systém ví, že chcete použít bash jako interpret pro váš skript. Skript hello.sh tedy můžete spustit přímo nyní, aniž byste mu předcházeli bash.

Přidání skriptu shellu do PATH (tak, aby lze spustit z libovolného adresáře)

Možná jste si všimli, že jsem ke spuštění skriptu použil ./hello.sh; pokud vynecháte úvodní ./

, zobrazí se chyba
[email protected]:~/scripts$ hello.sh
hello.sh: command not found

Bash si myslel, že se pokoušíte spustit příkaz s názvem hello.sh. Když na svém terminálu spustíte jakýkoli příkaz; shell hledá tento příkaz v sadě adresářů, které jsou uloženy v proměnné PATH.

K zobrazení obsahu proměnné PATH můžete použít echo:

echo $PATH
/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Dvojtečka (:) odděluje cestu ke každému z adresářů, které váš shell prohledává při každém spuštění příkazu.

Linuxové příkazy jako echo, cat atd. lze spouštět odkudkoli, protože jejich spustitelné soubory jsou uloženy v adresářích bin. Adresáře bin jsou součástí PATH. Když spustíte příkaz, váš systém zkontroluje PATH pro všechna možná místa, která by měl hledat, aby našel spustitelný soubor pro daný příkaz.

Pokud chcete spustit svůj bash skript odkudkoli, jako by to byl běžný příkaz Linuxu, přidejte umístění skriptu shellu do proměnné PATH.

Nejprve zjistěte umístění adresáře vašeho skriptu (za předpokladu, že jste ve stejném adresáři), použijte příkaz PWD:

pwd

Pomocí příkazu export přidejte svůj adresář skriptů do proměnné PATH.

export PATH=$PATH:/home/user/scripts
Všimněte si, že jsem přidal 'adresář skriptů' na úplný konec naší proměnné PATH. Tak, aby byla vlastní cesta prohledávána po standardních adresářích.

Okamžik pravdy je zde; spustit hello.sh:

[email protected]:~/scripts$ hello.sh
Hello, World!

Funguje to! Tím se dostáváme na konec tohoto tutoriálu. Doufám, že nyní máte nějakou základní představu o skriptování shellu. Níže si můžete stáhnout PDF a procvičit si, co jste se naučili, pomocí několika ukázkových skriptovacích výzev. Jejich řešení jsou také k dispozici pro případ, že byste potřebovali rady.

Bash Kapitola 1 Cvičné otázkyProblémy a jejich řešení k procvičení toho, co jste se právě naučili v této kapitoleBash-Kapitola-1-Procvičení-otázek-Linux-Příručka.pdf26 KB

Protože jsem vám představil proměnnou PATH, zůstaňte naladěni na další výukový program skriptování bash, kde podrobně proberu proměnné prostředí.


Linux
  1. Paralelní spuštění skriptu shellu

  2. Spusťte bash skript jako démona

  3. Po přihlášení spusťte bash skript

  1. Přidání argumentů a voleb do vašich Bash skriptů

  2. Vytvořit a spustit skript Shell v CentOS 8 - Postup krok za krokem, jak to udělat?

  3. Rozdíl mezi příkazy v bash skriptu a příkazy v terminálu

  1. Bash Beginner Series #8:Loops in Bash

  2. Jak napsat a spustit svůj první Qt program v Debianu 10

  3. Jak spustit skript shellu na konzole Unix nebo terminálu Mac?