Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Un consiglio per questo script, funziona con numeri interi ma non con i decimali!

    Buongiorno, visto che provengo da una famiglia di termoidraulici, questa notte ho provato fare uno script per calcolare le Kcal delle stanze, e ci sono riuscita, almeno in parte.Il problema e che con i numeri interi funziona, ma con i decimali no! Perche? Ecco lo script

    #!/bin/sh
    echo "QUESTO PROGRAMMA SERVE PER CALCOLARE LE KCAL DELLE STANZE"

    #Definiamo due variabili numeriche
    A=
    B=
    C=
    echo -n "Inserire altezza della stanza "
    read A
    echo -n "Inserire la lunghezza della stanza "
    read B
    echo -n "Inserire la larghezza della stanza "
    read C
    #Uso del commando let
    let "R1 = A * B * C * 40"
    #Stampiamo a video i risultati
    echo "Le Kcal necessarie per quetsta stanza sono "$R1

    Dove e l errore?
    Un kiss a tutti
    Alle prime armi di Linux!!
    Mandrakelinux 10.1 e di Fedora 3

  2. #2

    Re: Un consiglio per questo script, funziona con numeri interi ma non con i decimali!

    Originariamente inviato da Miss lady
    [...]Il problema e che con i numeri interi funziona, ma con i decimali no!
    Perche`, a meno che non sia cambiato qualcosa con le ultime versioni, la bash non sa gestire numeri in floating point. Solo interi. Ti devi appoggiare per il calcolo vero e proprio a programmi esterni quali bc,
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  3. #3
    Si questo l ho vavevo capito, ma non so come formularlo!!!
    Una dritta
    smackk
    Alle prime armi di Linux!!
    Mandrakelinux 10.1 e di Fedora 3

  4. #4
    Originariamente inviato da Miss lady
    Si questo l ho vavevo capito, ma non so come formularlo!!!
    Una dritta
    codice:
    $ A="0.760"
    $ B="0.333"
    $ C="0.500"
    $ R=$( echo $A \* $B + $C | bc )
    $ echo $R
    .753
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  5. #5
    Grazie, ma in questo modo i valori sono gia' stabiliti, uso il comando read per assegnare il valore!!!!
    Se scrivo A="0.860" poi quando mi fa il calcolo me lo fa utilzzando i valori gia assegnati? (in questo caso sarebbe A="0.860"
    Kissssssssssss
    Alle prime armi di Linux!!
    Mandrakelinux 10.1 e di Fedora 3

  6. #6
    Originariamente inviato da Miss lady
    Grazie, ma in questo modo i valori sono gia' stabiliti, uso il comando read per assegnare il valore!!!!
    Se scrivo A="0.860" poi quando mi fa il calcolo me lo fa utilzzando i valori gia assegnati? (in questo caso sarebbe A="0.860"
    L'unica cosa che devi cambiare nel tuo script e` questa:
    sostituisci
    codice:
    let "R1 = A * B * C * 40"
    con
    codice:
    R1=$( echo $A \* $B \* $C \* 40 | bc )
    Il resto immutato. L'escape dell'asterisco (il backslash) serve a impedire la sostituazione da parte della shell, che farebbe impazzire bc.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  7. #7
    Avevo già provato, mi da il seguente errore
    ./caloria.sh: line 15: syntax error near unexpected token `('
    ./caloria.sh: line 15: `R1=$ ( echo $A \* $B \* $C \* 40 | bc )'
    e gia 2 sere che ci sbatto la testa!!!!
    kisssssssssss
    Alle prime armi di Linux!!
    Mandrakelinux 10.1 e di Fedora 3

  8. #8
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    credo che il simbolo del dollaro debba stare attaccato alla parentesi tonda

    $( comando ) --> OK

    $ ( comando ) --> errato

    ciao
    slack? smack!

  9. #9
    Niente da fare non riesco a capire posto di nuovo il mio script, mi sento veramente imbranata

    #!/bin/sh
    echo "QUESTO PROGRAMMA SERVE PER CALCOLARE LE KCAL DELLE STANZE"

    #Definiamo due variabili numeriche
    A=
    B=
    C=
    echo -n "Inserire altezza della stanza "
    read A
    echo -n "Inserire la lunghezza della stanza "
    read B
    echo -n "Inserire la larghezza della stanza "
    read C
    #Uso del commando echo
    R1=$( echo $A \* $B \* $C \* 40 | bc )
    #Stampiamo a video i risultati
    echo "Le Kcal necessarie per quetsta stanza sono "$R1

    RISPOSTA


    QUESTO PROGRAMMA SERVE PER CALCOLARE LE KCAL DELLE STANZE
    Inserire altezza della stanza 5.3
    Inserire la lunghezza della stanza 2.1
    Inserire la larghezza della stanza 3

    ./caloria.sh: line 1: bc: command not found
    Le Kcal necessarie per quetsta stanza sono
    Alle prime armi di Linux!!
    Mandrakelinux 10.1 e di Fedora 3

  10. #10
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    Originariamente inviato da Miss lady
    ./caloria.sh: line 1: bc: command not found
    Il buon Ikitt, ti ha suggerito la ricetta, tu devi avere gli ingredienti pero'

    Installati "bc"

    ciao
    slack? smack!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.