skrypt (Unix)

script to narzędzie systemu Unix , które rejestruje sesję terminala . Pochodzi z 1979 3.0 BSD .

Stosowanie

Sesja skryptu jest domyślnie przechwytywana w maszynopisie nazwy pliku ; aby określić inną nazwę pliku, wykonaj polecenie skryptu ze spacją i nazwą pliku jako taką: script nagrana_sesja .

Zarejestrowany format skryptu składa się z informacji o taktowaniu w postaci zwykłego tekstu (dla całej sesji) i dosłownych danych wyjściowych polecenia, w tym dowolnego kodu ucieczki ANSI, który program wydrukował w celu sformatowania. Wykorzystuje pseudoterminal , więc programy działają dokładnie tak, jakby były na terminalu. Odtwarzanie skryptów util -linux Komenda oferuje funkcję powtórki w swoim skrypcie, która obsługuje użycie dodatkowego pliku taktowania dla informacji na poziomie postaci. Niektóre usługi online, takie jak nieistniejący już shelr.tv, mogą również wyświetlać ten format jako alternatywę dla screencastów wideo o niskiej przepustowości.

Problemy ze skryptem

Jednym z problemów z poleceniem script jest to, że pozwala ono jedynie na rejestrowanie procesu potomnego; i często istnieje potrzeba zarejestrowania polecenia w bieżącym procesie bez tworzenia nowego procesu, na przykład gdy potrzebna jest automatyzacja skryptu, który może rejestrować własne dane wyjściowe. Systemy Unix umożliwiają to za pomocą potoków i przekierowań. Rozważ następujące przykłady modeli:

Skorupa Bourne'a

Wszystkie powłoki związane z powłoką Bourne'a (mianowicie: sh , bash i ksh ) umożliwiają dołączenie stdout i stderr do nazwanego potoku i przekierowanie do polecenia tee .

Przykład


 LOGNAME  =  "skrypt"  rm -f  $LOGNAME  .p  $LOGNAME  .log mknod  $LOGNAME  .pp tee <  $LOGNAME  .p  $LOGNAME  .log  &  exec  >  $LOGNAME  .p  2  >  &  1 

Powyższy skrypt rejestruje w script.log wszystkie dane wyjściowe polecenia exec . Jednak niektóre programy interaktywne (takie jak python ) nie wyświetlają echa swojego standardowego wejścia, gdy są uruchamiane w wynikowej powłoce, chociaż robią to, gdy są uruchamiane za pomocą polecenia skryptu , ponownie z powodu wykrycia terminala.

Alternatywy dla poleceń skryptowych

Program ttyrec z 2000 roku zapewnia ten sam rodzaj funkcjonalności i oferuje kilka powiązań. Czas jest podobny do util-linux. Bardziej nowoczesnym podejściem do tej koncepcji jest „asciicast” JSON , używany przez asciinema.

Zobacz też