GNU/Linux >> Znalost Linux >  >> Linux

Jak provést příkaz ve skriptu Shell?

Shell je interpret příkazového řádku, který umožňuje uživateli komunikovat se systémem. Je zodpovědný za přijímání vstupů od uživatele a zobrazování výstupu.

Shell skripty jsou série příkazů napsaných v pořadí provádění. Tyto skripty mohou obsahovat funkce, smyčky, příkazy, proměnné. Skripty usnadňují uživatelům ukládání určitých sekvencí kódů, které mohou být použity znovu a znovu. Shell skripty mohou mít také komentáře pro zvýšení čitelnosti.

Shell skript je třeba uložit s příponou .sh .

Aby systém Linux věděl, že soubor je skript shellu, musí soubor začínat znakem shebang konstrukce.

#!/bin/bash 
OR
#!/bin/sh

Poté může skript obsahovat příkazy, funkce, smyčky, podmíněné kontroly atd.

Dobrý skript vždy obsahuje komentáře, díky kterým je čitelný.

Vytvoření a spuštění základního shell skriptu

Shell skript lze vytvořit pomocí vi, příkazu cat nebo normálního textového editoru v GUI.

Vytvořme základní shell skript pomocí vi

$ vi basic_script.sh

Tím se dostanete do editoru vi. Přidejte následující řádky:

#!/bin/bash
whoami
date

Tento jednoduchý skript by měl zobrazit aktuálního uživatele následovaného datem.

Chcete-li uložit a ukončit editor vi:

  • Stiskněte ESC
  • Typ:
  • Zadejte „wq“
  • Stiskněte Enter

Ve výchozím nastavení nezíská tvůrce skriptu oprávnění ke spuštění pro soubor.

Chcete-li to změnit:

$ chmod +x basic_script.sh

To vám (aktuálnímu uživateli) poskytne oprávnění ke spuštění souboru.

Spuštění skriptu:

$ bash basic_script.sh

První řádek výstupu odpovídá příkazu „whoami“ a druhý řádek příkazu „date“.

Dalším způsobem spuštění skriptu je:

$ ./basic_script.sh 

Spuštění souboru tímto způsobem může vyžadovat, aby uživatel nejprve udělil oprávnění. Spuštění pomocí ‚bash‘ nevyžaduje oprávnění.

Stejný skript běží s ‚bash‘ před tím, ale při pokusu o přímé spuštění má problémy s oprávněním. Důvodem, proč se to děje, je příkaz bash [název souboru] potřebuje pouze oprávnění ke čtení ze souboru.

Zatímco příkaz ./[název souboru] spouští soubor jako spustitelný soubor, a proto vyžaduje oprávnění ke spuštění. Tato otázka byla podrobně zodpovězena na StackExchange.

Obecně je lepší poskytnout spustitelné oprávnění.

Použití proměnných ve skriptech shellu

Skripty mohou obsahovat uživatelem definované proměnné, ve skutečnosti, protože skripty jsou objemné, je nezbytné mít proměnné, které jsou jasně definované. Proměnné, které jsou svou povahou sebepopisné, jsou další kvalitou dobrého skriptu.

Přidejte do skriptu následující řádky:

#!/bin/bash
#This is a comment

#defining a variable
GREETINGS="Hello! How are you"
echo $GREETINGS

Zdravím vás je proměnná definovaná a později přístupná pomocí „$“.

V řádku, kde je proměnným přiřazena hodnota, by neměla být mezera.

Spusťte skript:

Čtení vstupu z příkazového řádku

Shell skripty mohou být interaktivní se schopností přijímat vstup z příkazového řádku. Příkaz Read lze použít k uložení vstupu z příkazového řádku do proměnné.

#!/bin/bash
#This is a comment

#defining a variable
echo "What is your name?"
#reading input 
read NAME
#defining a variable
GREETINGS="Hello! How are you"
echo $NAME $GREETINGS
                 

Proměnná NAME byl použit k přijetí vstupu z příkazového řádku.

Při spuštění skriptu:

Definování funkcí

Uživatelé mohou definovat své vlastní funkce ve skriptu. Tyto funkce mohou mít více argumentů.

Do skriptu přidejte :

#!/bin/bash
#This is a comment

#defining a variable
echo "What is the name of the directory you want to create?"
#reading input 
read NAME
#defining a variable

echo "Creating $NAME ..."
mkcd ()
{
  mkdir "$NAME" 
  cd "$NAME"
}

mkcd
echo "You are now in $NAME"

Tento skript požádá uživatele o název adresáře. Poté vytvoří adresář a do něj cd.

Závěr

Viděli jsme, jak lze skripty použít ke spouštění příkazů v sériovém pořadí. Skripty pomáhají uživatelům snížit redundanci a šetřit čas. Skripty lze také sdílet mezi různými uživateli.

Skripty, které jsme viděli v tomto tutoriálu, byly docela základní, skripty lze navrhnout i pro provádění složitých úkolů. Další informace o skriptování naleznete zde.


Linux
  1. Jak vytvořit skript příkazu Linux

  2. Jak provést příkaz v prostředí Shell bez jeho uložení do historie? [Tipy pro Linux]

  3. Jak předat argument příkazového řádku do skriptu Shell?

  1. Jak provést příkaz před přihlášením uživatele v systému Linux?

  2. Jak vytvořit dočasný soubor ve skriptu Shell?

  3. Jak spustit skript v prostředí Shell, když je stisknuta klávesová zkratka?

  1. Jak spouštět příkazy v Gnuplot pomocí skriptu Shell?

  2. Jak uložit příkaz do proměnné v shell skriptu?

  3. Jak spustit soubor bez přípony .sh v shellu