Konsole dozvoljava da kreiras novi tip sesije pod imenom koji joj das, s tim da mozes da specificiras komandnu liniju koja ce da se izvrsi tom prilikom. Tako je moj prvi pokusaj izgledao ovako:
[user@comp user]$ telnet -l root 192.180.1.101
posle cega preostaje "samo" da odgovorim na "Password:" prompt. Medjutim, hteo bih i to da izbegnem i da dobijem root prompt na udaljenoj masini "na dugme" ( e, da ... lenjost! ).
Najblize sto sam isceprkao Googlovanjem (drugi su pre mene cesto postavljali isto pitanje) je:
[user@comp user]$ { sleep 1; echo password; sleep 1; } | telnet -l root 192.180.1.101
Drugi cesti odgovori su bili "ne radi to, to je glupo jer je opasno", "koristi expect" ili neki GUI multiterminal.
Ovo gore ne radi posao jer posto se izvrse sve komande na levoj strani pajpa, telnetu bude prosledjen EOF i ovaj lepo vrati kontrolu bash-u ("Connection closed by foreign host."). Ovo je mozda nacin da se automatski urade neke fiksne stvari na udaljenoj masini, da se pojedinacna komanda ili grupa komandi izvrse, a zatim zatvori konekcija, ali za trajni prompt ne pomaze.
npr.:
[user@comp user]$ { sleep 1; echo password; sleep 1; echo ps -A; sleep 2; } | telnet -l root 192.180.1.101
Cini mi se da je ovaj problem interesantan (ako se generalizuje) i resenje bi imalo potencijalno vecu primenu u scriptingu od prostog zaobilazenja logina: generalno kako izlaz vise procesa konkurentno vezati na ulaz jednog procesa (i/ili mozda kako izbeci da pojedinacni proces koji generise ulaz prosledi EOF)?
I obrnuto: kako izlaz jednog procesa (ili grupe procesa) "racvati" odnosno proslediti kopije na ulaze vise procesa, sto bi bilo interesantno za na primer prevodioce, parsere i slicno, odnosno omogucilo bi da graf izvrsavanja slozene obrade bude ... proizvoljno razgranat, mozda cak i ciklican.
Prosto mi je neverovatno da je ovako nesto bilo nepotrebno od nastanka Unixa do danas (da nije neko patentirao fork i join za strimove ili za skriptove pa nisu smeli da ih implementiraju? ).
Posto sam se nalupao kao nikad, ako neko zna da li ovo sto trazim sve vreme postoji u bash-u, molim vas da me uputite na info.