Standardowe strumienie i argumenty

Wprowadzenie do skryptów Bash

Alex Scriven

Data Scientist

STDIN-STDOUT-STDERR

W skryptach Bash program ma trzy strumienie:

  • STDIN (standardowe wejście). Strumień danych wchodzących do programu
  • STDOUT (standardowe wyjście). Strumień danych wychodzących z programu
  • STDERR (standardowy błąd). Błędy programu

Domyślnie strumienie te są powiązane z terminalem.

Można spotkać 2> /dev/null w wywołaniach skryptów — przekierowanie STDERR do usunięcia. (1> /dev/null dotyczy STDOUT)

Wprowadzenie do skryptów Bash

STDIN-STDOUT — graficznie

Graficzna reprezentacja standardowych strumieni z wykorzystaniem wcześniej utworzonego potoku:

Diagram standardowych strumieni

Wprowadzenie do skryptów Bash

Przykład STDIN

Rozważmy plik tekstowy (sports.txt) z 3 wierszami danych.

football
basketball
swimming

Polecenie cat sports.txt 1> new_sports.txt pobiera dane z pliku i zapisuje STDOUT do nowego pliku. Wynik polecenia cat new_sports.txt:

football
basketball
swimming
Wprowadzenie do skryptów Bash

STDIN a ARGV

Kluczowym pojęciem w skryptach Bash są argumenty

Skrypty Bash mogą przyjmować argumenty — wystarczy dodać je po nazwie skryptu, oddzielając spacją.

  • ARGV to tablica wszystkich argumentów przekazanych do programu.
  • Dostęp do każdego argumentu uzyskuje się przez notację $. Pierwszy to $1, drugi $2 itd.
  • $@ i $* zwracają wszystkie argumenty z ARGV
  • $# podaje liczbę argumentów
Wprowadzenie do skryptów Bash

Przykład ARGV

Przykładowy skrypt (args.sh):

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Wprowadzenie do skryptów Bash

Uruchamianie przykładu ARGV

Uruchomienie 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"
Wprowadzenie do skryptów Bash

Czas na ćwiczenia!

Wprowadzenie do skryptów Bash

Preparing Video For Download...