Bash Pagina 37
Introducerea Datelor într-un Script
Scripturile Bash pot citi date de la intrarea standard (stdin) folosind un simplu mecanism de citire. Aceasta este utilă pentru a prelucra datele transmise prin pipe sau pentru a citi din fișiere.
Exemplu de Script
Iată un exemplu de script care citește date din stdin:
#!/bin/bash # if -p /dev/stdin ; then while IFS= read LINE; do echo "Linie: $LINE" done fi
Explicații:
Verificarea intrării standard:
if -p /dev/stdin ; then
Verifică dacă stdin este un pipe. Dacă da, scriptul va continua să citească datele.
Citirea datelor:
while IFS= read LINE; do
Utilizează un loop while pentru a citi fiecare linie de intrare. IFS= asigură că spațiile sunt păstrate.
echo "Linie: $LINE"
Afișează fiecare linie citită.
Terminarea blocului if:
fi
Marchează sfârșitul structurii de control if.
Permisiuni de Executare: După ce ați salvat scriptul, asigurați-vă că are permisiuni de execuție:
chmod u+x readpipe.sh
Rularea Scriptului: Pentru a rula scriptul, utilizați:
./readpipe.sh
Utilizarea cu Pipe - Pentru a transmite date către script folosind pipe, rulați:
cat /etc/passwd | ./readpipe.sh
Aceasta va citi conținutul fișierului /etc/passwd și va afișa fiecare linie precedată de textul "Linie:".
Concluzie
Această metodă de introducere a datelor într-un script este foarte puternică, permițând prelucrarea datelor din diverse surse și este frecvent utilizată în scriptingul shell pentru a automatiza sarcini.