Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problema con script bash e if

    ciao

    dovrei fare un if su l'output di un programma

    c'è un programma che mi stampa a video 1 o 0, io voglio assegnare 1 o 0 ad una variabile e poi fare un if su questa variabile

    questo è il codice che ho scritto io:

    codice:
    #!/bin/bash
    
    SPAMPREF_PROGRAM=`/home/programmi/nik_spampref/bin/nik_spampref /home/programmi/nik_spampref/etc/conf1.conf info@prova.it`
    
    echo $SPAMPREF_PROGRAM;
    
    if ["$SPAMPREF_PROGRAM" = "1"]
    then
        echo "consegno";
    
    else
        echo "non consegno";
    
    fi
    e questo è l'outptu che ottengo:

    codice:
    1
    ./prove: line 7: [1: command not found
    consegno
    dove sbaglio?

    ho provato anche a paragonarli come interi, ma senza risultato:

    if [$SPAMPREF_PROGRAM= 1]
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Utente di HTML.it L'avatar di cacao74
    Registrato dal
    Jan 2005
    Messaggi
    2,570
    distanzia con uno spazio la condizione dell'istruzione if all'interno delle parentesi quadre
    codice:
    if [ condizione ]; then
        istruzioni
    fi
    ciao
    slack? smack!

  3. #3
    cavolo era proprio quello, grazie!
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    ora ho un'altro problema...

    vorrei assegnare ad una variabile il risultato di 2 comandi con la pipe:

    codice:
    IS_SPAM= `/bin/grep X-Spam-Status:\ Yes /path/file | /usr/bin/wc -l`
    
    if [ "$IS_SPAM" = "1" ]
    then
        echo "è una spam";
    fi

    però ottengo questo errore:
    /home/programmi/script/filtra: line 29: 1: command not found

    dove la riga 29 corrisponde a
    IS_SPAM= `/bin/grep X-Spam-Status:\ Yes /path/file | /usr/bin/wc -l`
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  5. #5
    ah ho risolto!

    anche qui era lo spazio dopo l'uguale che in questo caso non ci va
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

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 © 2025 vBulletin Solutions, Inc. All rights reserved.