OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

Czwartek, 28 lutego 20, 23:07:2002 CET

Połączenia dane polecenie normalnie umieszczałoby ostatnią linię na ekranie; teraz jest dołączony do pliku Lista życzeń.


obraz


5.2. Zaawansowane funkcje przekierowania


5.2.1. Używanie deskryptorów plików


Istnieją trzy typy wejść/wyjść, z których każdy ma swój własny identyfikator, zwany deskryptorem pliku:


• wejście standardowe: 0

• standardowe wyjście: 1

• błąd standardowy: 2


Jeżeli w poniższych opisach pominięto numer deskryptora pliku, a pierwszym znakiem operatora przekierowania jest <, przekierowanie odnosi się do standardowego wejścia (deskryptor pliku 0). Jeżeli pierwszym znakiem operatora przekierowania jest >, przekierowanie odnosi się do standardowego wyjścia (deskryptor pliku 1).


Kilka praktycznych przykładów sprawi, że będzie to jaśniejsze:


ls> lista kier 2> & 1


skieruje do pliku zarówno standardowe wyjście, jak i standardowe błędy lista kier, podczas gdy polecenie


jest 2>&1 > lista kier


skieruje tylko standardowe wyjście do lista kier. Może to być przydatna opcja dla programistów.


Sprawy się tu dość komplikują, nie należy mylić użycia ampersanda w tym miejscu z jego użyciem w Sekcji 4.1.2.1, gdzie ampersand używany jest do uruchamiania procesu w tle. W tym przypadku służy jedynie jako wskazówka, że ​​następująca po nim liczba nie jest nazwą pliku, ale raczej lokalizacją, na którą wskazuje strumień danych. Należy również pamiętać, że znak „większy niż” nie powinien być oddzielony spacjami od numeru deskryptora pliku. Gdyby zostało oddzielone, ponownie skierowalibyśmy dane wyjściowe do pliku. Poniższy przykład to pokazuje:


[nancy@asus /var/tmp]$ ls2>tmp


[nancy@asus /var/tmp]$ ls -l tmp

-rw-rw-r-- 1 nancy nancy 0 7 września 12:58 tmp


[nancy@asus /var/tmp]$ ls 2 > tmp

ls: 2: Nie ma takiego pliku ani katalogu

[nancy@asus /var/tmp]$ ls2>tmp


[nancy@asus /var/tmp]$ ls -l tmp

-rw-rw-r-- 1 nancy nancy 0 7 września 12:58 tmp


[nancy@asus /var/tmp]$ ls 2 > tmp

ls: 2: Nie ma takiego pliku ani katalogu

Pierwsze polecenie Nancy wykonuje się poprawnie (choć nie są generowane żadne błędy i tym samym plik, do którego przekierowywany jest błąd standardowy, jest pusty). Drugie polecenie tego oczekuje 2 to nazwa pliku, która w tym przypadku nie istnieje, dlatego wyświetla się błąd.


Wszystkie te funkcje są szczegółowo wyjaśnione na stronach Bash Info.


obraz


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: