Jak zacházet s argumenty příkazového řádku ve skriptu Bash

How Handle Command Line Arguments Bash Script



V mnoha případech skripty bash vyžadují hodnoty argumentů k poskytnutí možností vstupu skriptu. Argumenty příkazového řádku ve skriptu bash můžete zpracovat dvěma způsoby. Jedním je použití proměnné argumentů a další je pomocí getopts funkce. Jak zvládnete argumenty příkazového řádku, je ukázáno v tomto kurzu.

Použití proměnných argumentů:

Proměnná argumentu začíná od $ 0. Název hlavního souboru skriptu je uložen v $ 0, který přijímá hodnoty argumentů z argumentů příkazového řádku. Pokud jsou na příkazovém řádku předány dva argumenty, budou hodnoty argumentů přijímány postupně v proměnných $ 1 a $ 2.







Příklad -1: Odeslání tří číselných hodnot jako argumentů

Vytvořte bash soubor a přidejte následující kód. Skript obdrží tři hodnoty argumentů a uloží je do $ 1, $ 2 a $ 3. Bude počítat celkový počet argumentů, vytiskne hodnoty argumentů se smyčkou a bez smyčky. Nakonec vytiskněte součet všech hodnot argumentů.



#!/bin/bash

# Počítání celkového počtu argumentů
vyhodil 'Celkový počet argumentů: $#'

# Čtení hodnot argumentů jednotlivě
vyhodil „Hodnota prvního argumentu: $ 1“
vyhodil „Druhá hodnota argumentu: $ 2“
vyhodil 'Třetí hodnota argumentu: $ 3'

# Čtení hodnot argumentů pomocí smyčky
proargvalv '[email protected]'
dělat
vyhodil -n '$ argval'
Hotovo

# Přidání hodnot argumentů
součet= $((1 $+2 $+3 $))

# vytiskněte výsledek
vyhodil -A ' nVýsledek součtu =$ součet'

Spusťte soubor bash se třemi hodnotami číselných argumentů.



$bashcmdline1.shpadesátka 35 patnáct





Příklad -2: Vezmeme název souboru jako argument

Vytvořte soubor bash a přidáním následujícího kódu spočítejte celkový počet znaků libovolného souboru. Zde bude název souboru předán jako argument příkazového řádku.

#!/bin/bash
název souboru=1 $
totalchar=``toaleta -C $ název_souboru``
vyhodil 'Celkový počet znaků je.'$ totalchar'

Spusťte skript bash s názvem souboru jako hodnotou jediného argumentu a spusťte další příkaz, abyste zkontrolovali celkový počet znaků daného souboru. Zde se jako hodnota argumentu použije soubor employee.txt. Celkový počet znaků souboru employee.txt je 204.



$bashcmdline2.sh employee.txt
$toaleta -Cemployee.txt

Použití funkce getopts:

Pokud chcete ukládat data do databáze nebo jakéhokoli souboru nebo vytvořit sestavu v určitém formátu na základě hodnot argumentů příkazového řádku, pak getopts funkce je nejlepší volbou pro provedení úkolu. Je to vestavěná funkce linuxu. Tuto funkci tedy můžete ve skriptu snadno použít ke čtení formátovaných dat z příkazového řádku.

Příklad -1: Čtení argumentů funkcí getopts

Vytvořte soubor bash a přidejte následující skript, abyste porozuměli používání getopts funkce. Funkce „getopts“ se používá se smyčkou while pro čtení možností argumentů příkazového řádku a hodnot argumentů. Zde se používají 4 možnosti, které jsou „Já“, „n“, „m“ a 'A' . příkaz case se používá k přiřazení konkrétní možnosti a uložení hodnoty argumentu do proměnné. Nakonec vytiskněte hodnoty proměnné.

#!/bin/bash
zatímco getopts ':ve mě:'rozzlobený;dělat
případ $ arg v
) ID=$ OPTARG;;
n) název=$ OPTARG;;
m) Datum výroby=$ OPTARG;;
A) Datum spotřeby=$ OPTARG;;
esac
Hotovo
vyhodil -A ' n$ ID $ Jméno $ Datum výroby $ Expire_date n'

Spusťte soubor s následujícími možnostmi a hodnotami argumentů. Zde p100 je hodnota volby -i, 'Hot Cake' je hodnota -n možnosti, '01 -01-2018 'je hodnota -m možnosti a '06 -01-2018' je hodnota - e možnost.

$bashcmdline3.sh-ip001-n 'Horký dort' -m '01 -01-2018 ' -A '06 -01-2018 '

Když potřebujete odeslat jednoduché hodnoty ve skriptu, je lepší použít argumentové proměnné. Pokud však chcete odesílat data formátovaným způsobem, je lepší k načtení hodnot argumentů použít funkci getopts. Pro více informací sledujte video !