PředchozíNahoruDalšíObsah

11. Použití argumentů

Když píšete do příkazové řádky název nějakého programu, většinou k němu připíšete i nějaké paramtery, které mění chování programu. Parametry také můžete napsat, když spouštíte nějaký skript. V této kapitole si ukážeme, jak tyto parametry ve skriptu použít.

Tyto argumenty jsou uloženy v proměnných. Proměnná $# uchovává počet argumentů předaných programu. Jednotlivé argumenty jsou uloženy v proměnných $0, $1, $2,... Je tedy vidět, že jsou uloženy v proměnných číslovaných od 0 do počtu parametrů, přičemž v proměnné $0 je uložen název programu. Argumenty programu předané jsou až v proměnných 1 a více. Parametrů může být celkem 9. Nyní bude následovat příklad, ve kterém se parametry využijí:

#!/bin/bash

if [ "$#" -ne 1 ]; then
  echo "Použití: $0 argument."
fi

echo "První a jediný argument předaný skriptu je $1"

Tento program očekává pouze jeden parametr, aby se spustil program. Jestliže bylo předáno více nebo méně než jeden parametr, vytiskne zprávu použití. Jestliže byl jeden argument předán, bude také vytištěn.

Zde by bylo vhodné si uvést některé proměnné prostředí

Pokud by se vyskytla situace, že skriptu bude předáno více než devět parametrů, samozřejmě existuje jednoduchý způsob, jak přistoupit i k dalším parametrům. Je to příkaz shift.

Pokud budete chtít přistoupit ke všem parametrům skriptu jako k jediné proměnné, použijte ke čtení parametrů proměnnou $*. Ta vrátí seznam všech parametrů uložených v jedné proměnné a oddělených prvním znakem uvedeným v proměnné IFS. Použijete-li však pro přístup proměnnou $@, vrátí vám totéž co $*, ale nepoužívá proměnnou prostředí IFS. Přesný rozdíl mezi $* a $@ specifikuje X/Open.

Některé proměnné prostředí
Název
Popis
$HOME Domovský adresář aktuálního uživatele
$PATH Seznam adresářů oddělený dvojtečkami, ve kterých se mají hledat příkazy
$PS1 Prompt příkazové řádky, obvykle $
$PS2 Druhý prompt, který se využívá při dodatečném vstupu, obvykle >
$IFS Oddělovač polí. Seznam znaků, které slouží k oddělování slov, když shell čte vstup, obvykle mezera, tabulátor a znak nový řádek
$0 Název skriptu shellu
$# Počet předaných parametrů
$$ ID procesu skriptu, které se často používá uvnitř shellu ke generování jedinečných názvů dočasných souborů, například /tmp/tmpfile_$$

PředchozíNahoruDalšíObsah

11. dubna 2001 19:08