1. Learn
  2. /
  3. Cursuri
  4. /
  5. Introducere în Shell

Connected

exercițiu

Cum pot transmite nume de fișiere către scripturi?

Un script care procesează anumite fișiere specifice este util ca înregistrare a ceea ce ai făcut, dar unul care îți permite să procesezi orice fișiere dorești este și mai valoros. Pentru a face acest lucru, poți folosi expresia specială $@ (semnul dolar urmat imediat de simbolul @) cu sensul de „toți parametrii transmiși scriptului din linia de comandă".

De exemplu, dacă unique-lines.sh conține sort $@ | uniq, atunci când rulezi:

bash unique-lines.sh seasonal/summer.csv

shell-ul înlocuiește $@ cu seasonal/summer.csv și procesează un singur fișier. Dacă rulezi:

bash unique-lines.sh seasonal/summer.csv seasonal/autumn.csv

vor fi procesate două fișiere de date, și tot așa.

Ca reminder: pentru a salva ce ai scris în Nano, apasă Ctrl + O pentru a scrie fișierul, apoi Enter pentru a confirma numele fișierului, apoi Ctrl + X pentru a ieși din editor.

Instrucțiuni 1/2

undefined XP
  • 1

    Editează scriptul count-records.sh cu Nano și completează cei doi substituenți ____ cu $@ și respectiv -l (litera), astfel încât scriptul să numere liniile din unul sau mai multe fișiere, excluzând prima linie din fiecare.

  • 2

    Rulează count-records.sh pe seasonal/*.csv și redirecționează rezultatul către num-records.out folosind >.