1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do powłoki systemowej

Connected

ćwiczenie

Jak przekazywać nazwy plików do skryptów?

Skrypt przetwarzający konkretne pliki jest przydatny jako zapis wykonanych działań, ale jeszcze bardziej użyteczny jest taki, który pozwala przetwarzać dowolne pliki. Aby to umożliwić, może użyć specjalnego wyrażenia $@ (znak dolara bezpośrednio poprzedzający znak at), które oznacza „wszystkie parametry wiersza poleceń przekazane do skryptu".

Na przykład, jeśli plik unique-lines.sh zawiera sort $@ | uniq, to po uruchomieniu:

bash unique-lines.sh seasonal/summer.csv

powłoka zastępuje $@ wartością seasonal/summer.csv i przetwarza jeden plik. Jeśli uruchomisz:

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

skrypt przetworzy dwa pliki danych – i tak dalej.

Przypomnienie: aby zapisać plik w Nano, naciśnij Ctrl + O, żeby zapisać plik, następnie Enter, aby potwierdzić nazwę pliku, a potem Ctrl + X, aby wyjść z edytora.

Instrukcje 1/2

undefined XP
  • 1

    Otwórz skrypt count-records.sh w Nano i uzupełnij dwa miejsca ____ wartościami $@ oraz -l (litera), tak aby skrypt zliczał liczbę wierszy w jednym lub kilku plikach, pomijając pierwszy wiersz każdego z nich.

  • 2

    Uruchom count-records.sh na plikach seasonal/*.csv i przekieruj wynik do pliku num-records.out za pomocą >.