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ż
- Interpreter wiersza poleceń
- Shebang (Unix)
- Skorupa Bourne'a
- Powłoka Bourne-Znowu
- skorupa C
- Python (język programowania)
- Rozszerzenie nazwy pliku , sekcja Problemy z nazwami poleceń
- Perl
- Język skryptowy
- powłoka Uniksa