Opowieści skrypty

Sztuka pisania skryptów nie wejdzie do katalogu rzemiosł dawnych - przynajmniej w najbliższej przyszłości. Skrypty idealnie wypełniają bowiem lukę między gotowymi narzędziami a ''normalnymi'' językami programowania.

Sztuka pisania skryptów nie wejdzie do katalogu rzemiosł dawnych - przynajmniej w najbliższej przyszłości. Skrypty idealnie wypełniają bowiem lukę między gotowymi narzędziami a ''normalnymi'' językami .

Mnogość funkcji współczesnych aplikacji nie czyni ich automatycznie doskonałymi. Projektanci aplikacji - nawet wtedy, gdy klient ma jasno sprecyzowane wymagania - nie przewidzą wszystkich możliwych potrzeb, przed jakimi w przyszłości stanie administrator aplikacji. Z tego powodu aplikacje zaopatrywane są w coraz większą ilość narzędzi konfiguracyjnych i zarządczych dających administratorom niekiedy bardzo dużą swobodę. W praktyce zdarza się jednak, że i one mogą nie wystarczyć.

Lekarstwem na braki funkcjonalne aplikacji i narzędzi od zawsze były skrypty, stanowiące coś pośredniego między gotowym narzędziem a samodzielnym tworzeniem dedykowanego modułu aplikacji. Ten swoisty "systemowy middleware" niejednokrotnie ratował administratorów i ich firmy przed różnymi kłopotami, niemniej zawsze był traktowany jako "obywatel drugiej kategorii" i rugowany - że nieprzejrzysty, nieudokumentowany, niestandardowy itd.

Nawet jeśli część argumentacji przeciwników skryptów można uznać za słuszną, nie zanosi się raczej na to, by miały one przestać być wykorzystywane. Języki skryptowe i środowiska ich wykonywania wciąż ewoluują, dostosowując się do nowych warunków, wymagań, systemów, a nawet występują jako elementy nowo zatwierdzanych standardów technologicznych.

Magia automatu

Najkrócej mówiąc, skrypt jest programem napisanym w języku interpretowanym. Interpreterem może być powłoka systemowa (/bin/sh i podobne w systemach typu Unix, cmd w systemach Windows) czy interpreter języka programowania (perl, python, host skryptów systemu Windows itp.). Dzięki temu, że język skryptowy jest interpretowany, wykonuje się natychmiast, nie wymaga kompilacji i konsolidacji, a uruchomienie jest łatwe. Program skryptowy nie ma najlepszej możliwej wydajności, ale w wielu przypadkach nie jest to wadą.

Skrypty mogą wykonywać różne czynności - od prostej obróbki tekstu w poszukiwaniu wzorców (sztandarowym przykładem takiego programu jest analog, będący zestawem skryptów służących do analizy zapisów logów systemowych), poprzez różne działania na plikach, automatyzację pewnych czynności, aż po skomplikowane zadania, takie jak instalacja systemu operacyjnego.

OpenBSD, uznawany za jeden z bezpieczniejszych systemów operacyjnych, ma prosty, ale sprawny i komunikatywny instalator napisany w języku skryptowym powłoki systemowej (shell Korna). Dużo bardziej skomplikowanym zestawem poleceń języka skryptowego jest instalator systemu Red Hat Linux - napisany w języku python i uruchamiany za pomocą jego interpretera. Kto nie wierzy, niech sprawdzi.

Automatyzacja instalacji poprzez skrypty jest przykładem łatwym do przywołania, są jednak operacje mniej oczywiste, w których bez skryptów trudno sobie poradzić. Dawniej dotyczyło to niemal wszystkich czynności administracyjnych - od wykonywania kopii bezpieczeństwa, po bieżące prace konfiguracyjne. Skrypty napisane w języku powłoki systemowej są bardzo ważnym narzędziem dla doświadczonych administratorów systemów Unix, a także, wbrew powszechnemu mniemaniu, w systemach Windows.

Skrypty w Windows

Niektóre bardzo ważne dla administratora programy administracyjne do dziś posiadają cenne opcje dostępne z wiersza poleceń. W systemach Windows w ten sposób można np. zdefiniować i zaplanować wykonanie zadań wsadowych, wykonać kopię bezpieczeństwa, uruchomić lub zatrzymać usługę, zmapować dyski sieciowe, ustawić hasło, skontrolować sesje terminalowe, pobrać i wysłać plik za pomocą ftp lub rcp, zmienić ustawienia interfejsów sieciowych (polecenie netsh), a nawet zmodyfikować rejestr Windows czy dodać użytkownika domeny. W Windows brak interpretera powłoki o możliwościach i zachowaniu zbliżonym do C-shella lub powłoki Bourne'a znanych z systemów typu Unix. Brak też sprawnie działającego oprogramowania, które dawałoby możliwość zarejestrowania i późniejszego odtworzenia makropoleceń z użyciem naturalnego w środowisku Windows graficznego interfejsu użytkownika, co jest powodem bólu głowy administratorów.

Między innymi dlatego niektórzy bardziej doświadczeni użytkownicy Windows NT z powodzeniem wykorzystują program recorder.exe, który był składnikiem Windows 3.x i, o dziwo, działa w NT. Ci, którzy musieli w Excelu stosować nietypowe formatowanie tekstu podczas jego edycji w komórce (choćby wprowadzanie czcionki w różnych formatach, indeks górny i dolny albo z użyciem różnych czcionek w tej samej komórce), od razu docenili systemowy rejestrator poleceń.

Nieergonomicznie zaprojektowanych funkcji (nie tylko w Microsoft Office), które nie poddają się automatyzacji za pomocą makr, jest znacznie więcej - niektóre od razu kwalifikują się do realizacji za pomocą skryptów. Typowym przykładem jest choćby konwersja kilkuset plików graficznych (np. skalowanie połączone z zapisem w innym formacie). Można to wykonać za pomocą opcji Automate programu Photoshop 7, ale nie wtedy, gdy struktura katalogów jest skomplikowana. Ponadto Photoshop dużo kosztuje, zaprzęganie drogiego kombajnu graficznego do prostego skalowania obrazków przypomina strzelanie z armaty do wróbli.


TOP 200