Fluxuri standard și argumente

Introducere în Bash Scripting

Alex Scriven

Data Scientist

STDIN-STDOUT-STDERR

În Bash scripting există trei „fluxuri" pentru program:

  • STDIN (intrare standard). Un flux de date către program
  • STDOUT (ieșire standard). Un flux de date din program
  • STDERR (eroare standard). Erorile din program

Implicit, aceste fluxuri provin din terminal și scriu în terminal.

Puteți întâlni 2> /dev/null în apeluri de script — redirecționează STDERR pentru a fi șters. (1> /dev/null ar fi STDOUT)

Introducere în Bash Scripting

STDIN-STDOUT grafic

Reprezentare grafică a fluxurilor standard, folosind pipeline-ul creat anterior:

Diagramă fluxuri standard

Introducere în Bash Scripting

Exemplu STDIN

Considerați un fișier text (sports.txt) cu 3 linii de date.

football
basketball
swimming

Comanda cat sports.txt 1> new_sports.txt preia datele din fișier și scrie STDOUT într-un fișier nou. Vedeți ce se întâmplă la cat new_sports.txt

football
basketball
swimming
Introducere în Bash Scripting

STDIN vs ARGV

Un concept esențial în Bash scripting sunt argumentele

Scripturile Bash pot primi argumente adăugând un spațiu după comanda de execuție.

  • ARGV este matricea tuturor argumentelor transmise programului.
  • Fiecare argument este accesibil prin notația $. Primul ca $1, al doilea ca $2 etc.
  • $@ și $* returnează toate argumentele din ARGV
  • $# returnează numărul de argumente
Introducere în Bash Scripting

Exemplu ARGV

Considerați un script exemplu (args.sh):

#!/usr/bash
echo $1
echo $2
echo $@
echo "There are " $# "arguments"
Introducere în Bash Scripting

Rularea exemplului ARGV

Rulând 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"
Introducere în Bash Scripting

Să exersăm!

Introducere în Bash Scripting

Preparing Video For Download...