[Linux-Biella] bash
Andrea Ferraris
andrea.ferraris a gmail.com
Ven 16 Mar 2007 01:09:37 CET
On Fri, 2007-03-16 at 00:20 +0100, Paul TT wrote:
> Andrea Ferraris wrote:
>
> >On Thu, 2007-03-15 at 19:39 +0100, Federico Pietta wrote:
> >
> >
> >>Il giorno gio, 15/03/2007 alle 16.29 +0100, vallinidaniele a libero.it ha
> >>scritto:
> >>
> >>
> >>>vorrei inserire in uno script bash un calcolo aritmetico utilizzando l' espansione
> >>>di variabili sul tipo di quanto segue:
> >>>
> >>>echo "inserire variabile a"
> >>>read a
> >>>echo "inserire variabile b"
> >>>read b
> >>>echo "inserire variabile c"
> >>>read c
> >>>d=$(((a-b)/c)))
> >>>echo $d
> >>>
> >>>
> >>echo "inserire variabile a"
> >>read a
> >>echo "inserire variabile b"
> >>read b
> >>echo "inserire variabile c"
> >>read c
> >>d=$(((a-b)/c))
> >>echo $d
> >>
> >>
> >
> >Conta con me 1, 2, 3 , 3, 2, 1.
> >Non ti vedrei bene a programmare in LISP, ma nemmeno in C.
> >Che io sappia in bash e` gia` tanto che esistano degli interi,
> >figuriamoci i decimali. Usa il perl, usa awk, usa bc, ma con bash non
> >credo proprio che tu lo possa fare.
> >
> >
>
> d=$(echo "($a-$b)/$c" | bc)
CVD (Come Volevasi Dimostrare) o QED (Quod Erat Demonstrandum): bc
usasti, che poi tu lo possa integrare con la shel, fatto e` che con essa
sola non lo puoi fare. Comunque carino, magari mi servira` in futuro,
anche se sarebbe stato ancora piu` carino scrivere una funzione in sh
che lo facesse ;-)
[Fra parentesi, se lancio bc senza -l, almeno interattivamente, anche
lui snobba i decimali]
> se ti serve una data precisione e vuoi vedere le cifre dopo la virgola:
>
> d=$(echo "scale=4; ($a-$b)/$c" | bc)
Comunque ripeto, grazie, interessante, imparo l'arte e la metto da parte
(vedo che anche la manpage di bc e` d'accordo con te e lui e` pure
POSIX).
[fra parentesi] anche in bc puoi usare variabili e poi visualizzarle,
quindi probabilmente potresti anche scrivere lo script in bc iniziandolo
cosi`:
#!/usr/bin/bc -l
anche se poi non so se gli si puo` far fare una read a` la bash per
prendere l'input da tastiera, indi il modo impiegato oltre ad essere
corretto probabilmente e` anche'l'unico.
af
Maggiori informazioni sulla lista
Linux