Ako zaobchádzať s argumentmi príkazového riadka v skripte Bash

How Handle Command Line Arguments Bash Script



V mnohých prípadoch skripty bash vyžadujú na poskytnutie možností vstupu skriptu hodnoty argumentov. Argumenty príkazového riadka v skriptu bash môžete spracovať dvoma spôsobmi. Jedným je použitie argumentové premenné a ďalšie je pomocou getopts funkciu. V tomto návode je ukázané, ako zvládnete argumenty príkazového riadka.

Použitie premenných argumentov:

Premenná argumentu začína od 0 dolárov. Názov hlavného súboru skriptu je uložený v $ 0, ktorý prijíma hodnoty argumentov z argumentov príkazového riadka. Ak sú do príkazového riadka odovzdané dva argumenty, hodnoty argumentov budú prijaté v premenných $ 1 a $ 2 postupne.







Príklad -1: Odoslanie troch číselných hodnôt ako argumentov

Vytvorte súbor bash a pridajte nasledujúci kód. Skript dostane tri hodnoty argumentov a uloží ho v $ 1, $ 2 a $ 3. Bude počítať celkový počet argumentov, tlačiť hodnoty argumentov so slučkou a bez slučky. Nakoniec vytlačte súčet všetkých hodnôt argumentov.



#!/bin/bash

# Počítanie celkového počtu argumentov
zahodil „Celkový počet argumentov: $#“

# Čítanie hodnôt argumentov jednotlivo
zahodil „Prvá hodnota argumentu: 1 dolár“
zahodil „Druhá hodnota argumentu: 2 doláre“
zahodil „Hodnota tretieho argumentu: 3 doláre“

# Čítanie hodnôt argumentov pomocou slučky
preargvalv '[email protected]'
urobiť
zahodil -n '$ argval'
hotový

# Pridávanie hodnôt argumentov
súčet= $((1 dolár+2 doláre+3 doláre))

# vytlačte výsledok
zahodil -A ' nVýsledok súčtu =$ súčet'

Spustite súbor bash s tromi hodnotami číselných argumentov.



$bashcmdline1.shpäťdesiat 35 pätnásť





Príklad -2: Ako názov súboru sa použije názov súboru

Vytvorte súbor bash a pridajte nasledujúci kód na spočítanie celkového počtu znakov akéhokoľvek súboru. Tu bude názov súboru odoslaný ako argument príkazového riadka.

#!/bin/bash
názov súboru=1 dolár
totalchar=wc -c $ názov súboru
zahodil „Celkový počet znakov je$ totalchar'

Spustite skript bash s názvom súboru ako hodnotou jedného argumentu a spustením iného príkazu skontrolujte celkový počet znakov v tomto súbore. Tu sa ako hodnota argumentu použije súbor employee.txt. Celkový počet znakov súboru employee.txt je 204.



$bashcmdline2.sh employee.txt
$wc -czamestnanec.txt

Použitie funkcie getopts:

Ak chcete uložiť údaje do databázy alebo akéhokoľvek súboru alebo vytvoriť správu v konkrétnom formáte na základe hodnôt argumentov príkazového riadka, potom getopts funkcia je najlepšou možnosťou na vykonanie úlohy. Je to vstavaná funkcia Linuxu. Túto funkciu teda môžete vo svojom skripte ľahko použiť na čítanie formátovaných údajov z príkazového riadka.

Príklad -1: Čítanie argumentov funkciou getopts

Vytvorte súbor bash a pridaním nasledujúceho skriptu pochopíte používanie getopts funkciu. Funkcia „getopts“ sa používa so slučkou while na čítanie možností argumentov a hodnôt argumentov príkazového riadka. Tu sa používajú 4 možnosti, ktoré sú „Ja“, „n“, „m“ a „A“ . príkaz case sa používa na priradenie konkrétnej možnosti a uloženie hodnoty argumentu do premennej. Nakoniec vytlačte hodnoty premennej.

#!/bin/bash
kým getopts ':vo mne:'nahnevaný;urobiť
prípad $ arg v
i) ID=$ OPTARG;;
n) názov=$ OPTARG;;
m) Dátum výroby=$ OPTARG;;
A) Dátum expirácie=$ OPTARG;;
esac
hotový
zahodil -A ' n$ ID $ Meno $ Manufacturing_date $ Expire_date n'

Spustite súbor s nasledujúcimi možnosťami a hodnotami argumentov. Tu je p100 hodnota -i možnosti, 'Hot Cake' je hodnota -n možnosti, '01 -01-2018 'je hodnota -m možnosti a '06 -01-2018' je hodnota - e možnosť.

$bashcmdline3.sh-ip001-n 'Horúci koláč' -m '01 -01-2018 ' -A '06 -01-2018 '

Ak potrebujete odoslať jednoduché hodnoty v skripte, je lepšie použiť premenné argumentov. Ak však chcete odosielať údaje formátovaným spôsobom, je lepšie použiť na získanie hodnôt argumentov funkciu getopts. Pre viac informácií sledujte video !