Různé příklady Subshell
V této části výukového programu jsou uvedeny různé způsoby provádění skriptu v podshell.
Příklad 1: Provedení dílčího shellu pomocí jednoduché a dvojité nabídky
Vytvořte soubor Bash pomocí následujícího skriptu, který vytiskne aktuální datum a čas. Dále se vytiskne proměnná $strVal tak, že se skript subshell uzavře do jednoduchých a dvojitých uvozovek.
#!/bin/bash
#Vytiskněte příkaz `date` v subshell
echo 'Dnes je 'datum' '
#Definujte řetězcovou proměnnou
strVal = 'Bash Subshell'
# Vytiskněte proměnnou v podshell pomocí jednoduchých uvozovek
echo 'Výstup jednoduchých uvozovek:' '$(echo $strVal)'
#Vytiskněte proměnnou v podshell pomocí dvojitých uvozovek
echo 'Výstup dvojitých uvozovek:' ' $(echo $strVal) '
Po provedení skriptu se zobrazí následující výstup. Skript subshell je vytištěn jako řetězec, když je uzavřen do jednoduchých uvozovek. Skript subshell se spustí, když je uzavřen do dvojitých uvozovek:
Příklad 2: Prohledejte všechny soubory konkrétní přípony pomocí subshell
Vytvořte soubor Bash pomocí následujícího skriptu, který převezme příponu souboru jako vstup od uživatele. Dále je v subshell spuštěn příkaz „ls“, který prohledá všechny soubory této konkrétní přípony.
#!/bin/bash
echo -n 'Zadejte název přípony souboru:'
# Vezměte název přípony souboru, který bude prohledán
číst ext
# Zkontrolujte vstupní hodnotu
-li [ [ $ext == '' ] ] ; pak
#Vytiskněte chybovou zprávu
echo 'Není poskytnuto žádné prodloužení.'
jiný
echo 'Názvy souborů s $ext rozšíření:'
#Vytisknout všechny názvy souborů s danou příponou
echo ' $( echo `ls *.$ext` ) '
být
Po provedení skriptu se vstupem „txt“ se objeví následující výstup. Podle výstupu existují v aktuálním umístění tři textové soubory:
Po provedení skriptu s prázdnou hodnotou se zobrazí následující výstup:
Příklad 3: Proveďte aritmetický výraz v podsložce
Vytvořte soubor Bash pomocí následujícího skriptu, kde je proměnná se stejným názvem použita v hlavním prostředí a v dílčím prostředí. Aritmetická operace je definována v hlavním a dílčím shellu.
#!/bin/bash#Definujte nadřazenou proměnnou shellu
číslo = 10
#Vytiskněte výsledek na základě proměnné nadřazeného shellu
( ( výsledek = $číslo + 5 ) )
echo 'Součet $číslo +5= $výsledek '
#Vytvořte proměnnou subshell se stejným názvem jako nadřazený shell
( číslo = dvacet ; ( ( výsledek = $číslo + 10 ) ) ; echo 'Součet $číslo +5= $výsledek ' )
#Vytiskněte výsledek znovu na základě proměnné nadřazeného shellu
echo 'Součet $číslo +5= $výsledek '
Po provedení skriptu se zobrazí následující výstup. První a poslední výstup ukazují výsledek hlavního shellu. Druhý výstup zobrazuje výsledek subshell. Proměnná hlavního shellu není modifikována proměnnou subshell:
Příklad 4: Proveďte více příkazů v podshellu
Vytvořte soubor Bash pomocí následujícího skriptu, který odešle výstup příkazu „echo“ do příkazu „sed“, který nahradí odpovídající hodnotu řetězce jiným řetězcem. Výstup příkazu „echo“ je „JavaScript“. Tato hodnota je tedy porovnána s „Java“ a „JavaScript“. Pokud je nalezena shoda, odpovídající řetězce jsou nahrazeny řetězcem „Typ“.
#!/bin/bash#Definujte hodnotu řetězce
strVal = 'JavaScript'
#Vytiskněte původní hodnotu řetězce
echo 'Hodnota řetězce: $strVal '
#Vytiskněte hodnotu subshell
echo -n 'Hodnota podslupky: '
echo ' $(echo $strVal | sed 's|Java|Typ JavaScriptu|') '
Po provedení skriptu se zobrazí následující výstup. Podle výstupu je řetězec „Java“ nahrazen řetězcem „Typ“. Výstup subshell je „JavaScript TypeScript“:
Závěr
Jeden nebo více příkazů nebo skriptů lze spustit pomocí subshell, aniž by to ovlivnilo hlavní shell. Účely použití subshell jsou vysvětleny v tomto tutoriálu na několika příkladech. Různé typy úloh, jako je prohledávání souborů, výpočet součtu čísel, nahrazování řetězců atd., jsou v uvedených příkladech prováděny pomocí subshell. Koncept použití subshell je řádně demonstrován a noví uživatelé Bash budou nyní moci používat subshell po přečtení tohoto tutoriálu.