Newsgroup: it.comp.os.linux.development
Titolo: bash programming

Sto imparando a programmare con la bash ma queste due righe già mi
danno problemi:
#!/bin/bash
if $(who | wc -l | cut -b7) -gt 5 ;
then
echo "troppi utenti"
fi
done
Volevo fare uno script (didattico, così per imparare) in modo che se
ci sono più di n utenti prima avverte l'amministratore e poi se non
succede niente dopo t secondi fa il log out di qualche utente (magari
avvertendolo prima). Quindi per cominciare avevo cominciato con quelle
due righe su che mi danno come errore che 4 (se quattro sono gli
utenti connessi) non è un comando. Perchè si aspetta un comando e non
mi fa subito il test "> di 5"?
Come si fa a mandare un echo su una specifica consolle di un utente?
Infine dove posso trovare della documentazione adeguata per chi inizia
e con gli esempi? Ho provato man, Appunti linux e bash reference, ma
hanno la valenza di manuali per chi già sa e non per chi vuole
cominciare. Esiste anche un how-to alla primissima versione ma non c'è
praticamente niente.
So usare i comandi singoli (grep, cat, cut, wc, etc) ma quando si
tratta di mettere insieme tutto è un disastro.
Se ad esempio voglio assegnare a una variabile l'output di un comando
complesso come who | wc -l | cut -b7 come si fa?
TIA
--
     Good luck!              
un...@softhome.net
     ADaM        
http://digilander.iol.it/unno2/
If debugging is the process of removing bugs,
then programming must be the process of putting them in.
(Dijkstra)

 complesso come who | wc -l | cut -b7 come si fa?
VAR=`who | wc -l | cut -b7`
Ciao,
Fabio Alemagna

Ciao ADaM,
 > #!/bin/bash
per debug aggiung -x dopo bash
 > if $(who | wc -l | cut -b7) -gt 5 ;
mancano le quadre:
if [ $(who | wc -l | cut -b7) -gt 5 ] ;
 > then
 > echo "troppi utenti"
 > fi
 > done
non c'entra.
Riassumendo:
#!/bin/bash -x
if [ $(who | wc -l | cut -b7) -gt 5 ] ;
then
echo "troppi utenti"
fi
per maggiori info: comp.unix.shell
 > Come si fa a mandare un echo su una specifica consolle di un utente?
man write:
WRITE(1)                    System Reference Manual
NAME
     write - send a message to another user
SYNOPSIS
     write user [ttyname]
DESCRIPTION
     Write allows you to communicate with other users, by copying lines from
     your terminal to theirs.
     When you run the write command, the user you are writing to gets a mes-
     sage of the form:
           Message from yourname@yourhost on yourtty at hh:mm ...
 > Infine dove posso trovare della documentazione adeguata per chi inizia
 > e con gli esempi? Ho provato man, Appunti linux e bash reference, ma
cd /usr/bin ; file * | grep shell
 > Se ad esempio voglio assegnare a una variabile l'output di un comando
 > complesso come who | wc -l | cut -b7 come si fa?
OUTPUT=`who | wc -l | cut -b7`
echo $OUTPUT
N.B. nota le virgolette al contrario!
3 tipi di virgolette " ' `
hanno significati diversi!
Se vuoi altri esempi:
http://www.fastflow.it/~paolop/linux/src/script/bash
buon divertimento
-- 
Pa.Ped, Como
http://www.fastflow.it/~paolop
ICQ: 4755831
VOTE AGAINST SPAM! 
http://www.politik-digital.de/spam/it/
Appunti Linux, FAQ, HOWTO e altro:
file://usr/doc/HOWTO
file://usr/doc/FAQ
Pluto Journal:     
http://www.pluto.linux.it/journal
Linux Gazette:     
http://www.linuxgazette.com
Linux Weekly News: 
http://lwn.net
LinuxDoc:          
http://www.linuxdoc.org
(info|news).ita: 
http://www.punto-informatico.it
http://erlug.linux.it/
http://www.ziobudda.net/
Ricerca NEWS: 
http://www.deja.com
IRC: #linux-it

non dimenticare gli spazi.
Grazie. Ora č ok.
[Per la serie: come due spazi fanno perdere delle ore a bestemmiare
;-) ]


cd /usr/bin ; file * | grep shell
file lo conoscevo ma non l'avevo mai usato. Ho letto il suo man e mi
pare che la sua licenza non sia GPL o sbaglio? Com'è che uno dei
curatori oltre all'email normale ha un indirizzo UUCP: che significa?
Grazie ancora.


Ciao ADaM,
 > file lo conoscevo ma non l'avevo mai usato. Ho letto il suo man e mi
 > pare che la sua licenza non sia GPL o sbaglio? Com'è che uno dei
vero, ma solo in apparenza.
A tutti gli effetti la llicenza e' equivalente, per quel che posso notare.
Il che significa che o e' equivalente, oppure mi sbaglio. :-)
 > curatori oltre all'email normale ha un indirizzo UUCP: che significa?
Unix to Unix CoPy.
questo e' tutto quello che so.
Tracce di una vecchia internet? :-)


curatori oltre all'email normale ha un indirizzo UUCP: che significa?
Che sei giovane. <g>
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *
      | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

Che sei giovane. <g>
Eheh, e tu sei sempre monosillabico ;-)



ICQ: <38811133>

Ghelfi (
web.tiscalinet.it/penguin_rules
)?
Se ha tradotto la ver originale v0.03 allora ha fatto in 5 min. :-)
Non so se c'è stato un aggiornamento da quella che letto io
(originale) e che risale al 28/01/2000. Questa appunto è davvero
scarsa, è ancora all'inizio.
