Standardní proudy a argumenty

Úvod do Bash skriptování

Alex Scriven

Data Scientist

STDIN-STDOUT-STDERR

V Bash skriptování existují tři „proudy" programu:

  • STDIN (standardní vstup). Proud dat do programu
  • STDOUT (standardní výstup). Proud dat z programu
  • STDERR (standardní chyba). Chyby programu

Výchozím zdrojem a cílem těchto proudů je terminál.

V příkazech skriptů se může vyskytovat 2> /dev/null, což přesměruje STDERR do koše. (1> /dev/null by bylo STDOUT)

Úvod do Bash skriptování

STDIN-STDOUT graficky

Grafické znázornění standardních proudů pomocí dříve vytvořeného potrubí:

Diagram standardních proudů

Úvod do Bash skriptování

Příklad STDIN

Uvažujme textový soubor (sports.txt) se 3 řádky dat.

football
basketball
swimming

Příkaz cat sports.txt 1> new_sports.txt načte data ze souboru a zapíše STDOUT do nového souboru. Výsledek příkazu cat new_sports.txt:

football
basketball
swimming
Úvod do Bash skriptování

STDIN vs ARGV

Klíčovým konceptem Bash skriptování jsou argumenty.

Bash skripty mohou přijímat argumenty zadané za názvem skriptu, oddělené mezerou.

  • ARGV je pole všech argumentů předaných programu.
  • Každý argument je přístupný přes notaci $. První jako $1, druhý jako $2 atd.
  • $@ a $* vrátí všechny argumenty v ARGV
  • $# vrátí počet argumentů
Úvod do Bash skriptování

Příklad ARGV

Příklad skriptu (args.sh):

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Úvod do Bash skriptování

Spuštění příkladu ARGV

Spuštění bash args.sh one two three four five

one
two
one two three four five
There are 5 arguments

 

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Úvod do Bash skriptování

Pojďme si to procvičit!

Úvod do Bash skriptování

Preparing Video For Download...