GNU/Linux >> Znalost Linux >  >> Linux

Zkontrolujte, zda jsou ve skriptu bash uvedeny alespoň dva argumenty

Použijte $# speciální proměnná. Jeho hodnota je počet argumentů. Pokud tedy máte skript, který obsahuje pouze:

echo $#

a spusťte jej takto:

thatscript foo bar baz quux

Vytiskne 4.

Ve vašem případě možná budete chtít udělat něco jako:

if [ $# -lt 2 ]; then
    # TODO: print usage
    exit 1
fi

Pokud vycházím z požadavku z otázky, že argumenty by měly obsahovat „alespoň 2 věci“, myslím, že by mohlo být přesnější zkontrolovat:

if (( $# < 2 )); then
    # TODO: print usage
    exit 1
fi

Použití aritmetického rozšíření (( )) zabrání tomu, aby se srazilo s exit 1 pro jakoukoli hodnotu, která se nerovná 2.

Pokud používáte if [ $# -ne 2 ]; spustí podmínku pro libovolný počet argumentů jiný než 2.

Edit:Zdá se, že přijatá odpověď byla aktualizována, aby zahrnovala ekvivalentní (a přenosnější?) příklad tohoto.


Linux
  1. Přidání argumentů a voleb do vašich Bash skriptů

  2. Předat argumenty příkazového řádku skriptu Bash?

  3. Bash Script:Zkontrolujte, zda je soubor textovým souborem?

  1. Jak zkontrolovat podřetězec v Shell Script Bash?

  2. Zkontrolujte, jak dlouho trvá spuštění Bash skriptu s Time Command

  3. Pochopení toho, jak jsou vstupy odesílány do potrubí v Bash

  1. Otestovat, zda existují soubory odpovídající vzoru, aby bylo možné spustit skript?

  2. Zabijte všechny procesy, které daný uživatel běží déle než 5 minut ve skriptu linux bash

  3. Když se přihlásím na svůj server pomocí SSH, zobrazí se dvě MOTD