Ako písať funkcie a slučky v Bash?

Najjednoduchší spôsob, ako znížiť množstvo kódu, ktorý musíte napísať v akomkoľvek programe, je prísť na spôsoby, ako kód znova použiť.
Skriptovanie shellu Bash je jazyk CLI ( Command Line Interface), ktorý je výkonný a všestranný. Najjednoduchší spôsob, ako znížiť množstvo kódu, ktorý musíte napísať v akomkoľvek programe, je prísť na spôsoby, ako kód znova použiť. Slučky a funkcie sú dva spôsoby, ako to dosiahnuť. Ako v každom jazyku, čím viac syntaxe poznáte (alebo kde syntax nájdete), tým lepšie budete pri písaní kódu. Kód uvedený v tomto článku je spustiteľný program, ktorý sa spustí v systéme UNIX, Linux alebo Mac OS X alebo novšom. Tento článok sa začne v systéme Linux na príkazovom riadku.
- 1Prejdite na Linux a otvorte okno terminálu. Zadajte nasledujúci príkaz na príkazovom riadku:
vi FunLoop.sh
. Vytvorí sa súbor, ktorý použijete ako súbor skriptu, a otvoríte ho na úpravu. - 2Zadajte príkaz shell do prvého riadka súboru. Každý skript shellu to potrebuje, aby zistil, v ktorom shelli sa má spustiť. Napíšte
#!/bin/bash
. - 3Vytvorte premenné, ktoré budete potrebovať pre tento skript. Budete potrebovať jeden na zachytenie voľby zadanej používateľom a jeden na nastavenie adresára na základe voľby používateľa. Napíšte
directory=""
achoice=0
. - 4Vytvorte svoju prvú funkciu. Je to jednoduchý kód a má názov, ktorý rozlišuje veľké a malé písmena. Pomenujte to
menuList
. Všetko medzi úvodnou a záverečnou zátvorkou je ľubovoľný kód.Vytvorí sa súbor, ktorý použijete ako súbor skriptu, a otvoríte ho na úpravu. - 5Zadajte názov a zátvorky do prvého riadka za premennými. To by malo vyzerať nasledovne:
menuList()
. - 6Napíšte otváraciu zátvorku na iný riadok samostatne
{
. - 7Zadajte príkaz, aby sa obrazovka na riadku vyčistila sama. Malo by to vyzerať takto:
clear
. - 8Zadajte príkazy ozveny, ktoré tvoria ponuku.
echo "1. Spustite ls v mojom domovskom adresári." echo "2. Spustite ls v koreňovom adresári." echo "3. Spustite ls v priečinku bin." echo "4. Ukončite program."
- 9Napíšte uzatváraciu zátvorku na inom riadku samostatne
}
. - 10Vytvorte funkciu na spustenie
ls
príkazu. - 11Zadajte názov a zátvorky do prvého riadka za premennými. Mali by ste pridať
runLS()
. - 12Napíšte otváraciu zátvorku na iný riadok samostatne
{
. - 13Zadajte príkaz na spustenie súboru ls.
ls -la $directory
kde adresár $ je ten, ktorý je určený voľbou ponuky. - 14Napíšte uzatváraciu zátvorku na inom riadku samostatne
}
. - 15Vytvorte príkazy cyklu a if na spustenie svojich funkcií.
- 16Vytvorte príkaz while so slovom, za ktorým bude nasledovať podmienený príkaz.
while [$choice -ne 4]
. Kde$choice
je vstup od používateľa a4
je položka ponuky, ktorá má programu povedať, aby sa ukončil,-ne
je podmienený operátor používaný v skriptovaní bash shell na vyhodnotenie čísel. - 17Pokračujte v príkaze while kľúčovým slovom do. Zadajte
do
. - 18Ďalej prichádza kód, ktorý chcete spustiť vždy, keď sa spustí slučka while. Máte štyri položky ponuky, takže
if
na hodnoty, ktoré nespĺňajú požiadavky na položky ponuky, budete potrebovať štyri príkazy a jeden záchytný bod. Napíšte príkaz if takto:ak [$ choice -eq 1] potom $ adresár = "~/" runLS elif [$ choice -eq 2] potom $ adresár = "/" runLS elif [$ choice -eq 3] potom $ adresár = "/bin" runLS elif [$ choice -eq 4] potom vymažte echo „Ďakujeme, že používate súbory zoznamu“ spánok 3 ukončenie iného echa „neplatná voľba, skúste to znova“ hotovo
Budete potrebovať jeden na zachytenie voľby zadanej používateľom a jeden na nastavenie adresára na základe voľby užívateľa. - 19Uložiť a ukončiť súboru zadaním: Esc
:x
. - 20Spustite chmod, aby súbor získal povolenie na spustenie. Zadajte:
chmod u+x FunLoop.sh
. - 21Spustite program zadaním
.
/FunLoop.sh.
Metóda 1 z 1: príklad
Ukážkový kód, ktorý môžete použiť:
!/bin/bash directory = "" voľba = 0 menuList () {clear echo "1. Spustite ls v mojom domovskom adresári." echo "2. Spustite ls v koreňovom adresári." echo "3. Spustite ls v priečinku bin." echo "4. Ukončite program"} runLS () {ls -la $ adresár sleep 2} while [$ choice -ne 4] do menuList read -p "Enter your choice:" option if [$ choice -eq 1] then $ adresár = "~/" runLS elif [$ choice -eq 2] potom $ adresár = "/" runLS elif [$ choice -eq 3] potom $ adresár = "/bin" runLS elif [$ choice -eq 4] potom vymazať echo „Ďakujeme, že používate súbory zoznamu“ spánok 3 ukončenie iného echa „Neplatná voľba, skúste to znova“ hotovo
- Nesprávne skripty môžu mať negatívny vplyv na váš systém. Pri manipulácii so súbormi v počítači je dôležité byť opatrný.
- Počítač s operačným systémom Linux, UNIX alebo OS X
Prečítajte si tiež: Ako aktivovať Microsoft Office 2010?
Súvisiace články