Il gioco delle azioni positive                   Siamo tutti entusiasti per la vittoria della Ferrari guidata da Michael
Schumacher sul circuito di Suzuka. In molti si sono stupiti per la
velocita' della vettura. Noi sappiamo perche' e' andata cosi' forte.
Nel motore, al posto dei pistoni, c'era Pantani.
-- Panfilo Maria Lippi, "TABLOID TABLOID"@"Mai Dire Gol"
 

La device tcp di Bash


Due comandi molto utilizzati per scaricare dei file da Internet sono curl e wget.

Ad esempio, se vogliamo scaricare la home page di Google con curl, digiteremo


curl www.google.com


ed otterremo la pagina sullo standard output.

Stessa cosa si può fare con wget utilizzando il comando


wget -O - www.google.com


Anche il questo caso la pagina sarà mostrata sullo standard output (con wget togliendo -O -, l’output sarà salvato su index.html).

Non molti sanno che la stessa cosa si può fare utilizzando le estensioni tcp della bash. Il primo passo per ottenere tale scopo è digitare il seguente comando:


exec 5<>/dev/tcp/www.google.com/80


Con esso si istruisce la bash ad aprire sia in input che in output il descrittore di file numero 5 sull’indirizzo tcp www.google.com alla porta 80.

Il passo successivo è chiedere la pagina da scaricare, in questo caso la home page (/).


echo -e "GET / HTTP/1.0\n" >&5


Si noti che questa richiesta va fatta inviando l’apposito comando GET al descrittore prima aperto.

Sempre utilizzando il descrittore si riceve la pagina in risposta dal server con


cat <&5


Sullo standard output sarà visualizzata a questo punto la pagina richiesta. Non ci resta adesso che chiudere il descrittore con


exec 5<&-


Probabilmente si tratta più di un esercizio teorico che di una reale necessità ma è interessante sapere che la bash è un ambiente davvero completo ed autosufficiente.




© Mialan 2001 - 2024