Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467

    [bash] aiuto per script

    ciao a tutti
    ho fatto questo script che dovrebbe dirmi se in un file c'è una certa stringa e se c'è
    alzo un flag che poi userò dopo

    il problema è che se alzo il flag dentro il mio ciclo
    non conserva il valore assegnato quando esce
    codice:
    #!/bin/sh
    
    flag=0
    i=""
     
    cat $HOME/pippo/pippologs/test.txt | while read i
    do
            if [ "$i" == "testo incriminato" ]
            then
                    s=$i
                    flag=1
                    echo $flag #qui mi stampa 1
            fi
    done
    
    echo $flag #qui mi stampa 0 quindi non entra mai nel ciclo
    
    if [ $flag -eq 1 ]
            then
                    echo "faccio quello che devo fare"
            fi
    grazie a tutti ciao ciao
    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

  2. #2
    Leggendo un po' in giro mi sembra di capire che il problema sia nel fatto che le pipe sono eseguite in un'altra shell rispetto allo script principale, però non so bene come risolvere

  3. #3

    Re: [bash] aiuto per script

    Cosi' dovrebbe andare.

    codice:
    #!/bin/sh
    
    flag=0
    i=""
     
    while read i
    do
            if [ "$i" == "testo incriminato" ] #attenzione che questo e true se e solo se l'intera riga e' uguale a "testo incriminato" e non se la riga contiene "testo incriminato"
            then
                    s=$i
                    flag=1
                    echo $flag #qui mi stampa 1
            fi
    done < $HOME/pippo/pippologs/test.txt
    
    echo $flag #dovrebbe stampare 1
    
    if [ $flag -eq 1 ]
            then
                    echo "faccio quello che devo fare"
            fi
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Utente di HTML.it L'avatar di Cozza
    Registrato dal
    Jan 2001
    Messaggi
    467

    Re: Re: [bash] aiuto per script

    Originariamente inviato da mxa
    Cosi' dovrebbe andare.

    codice:
    #!/bin/sh
    
    flag=0
    i=""
     
    while read i
    do
            if [ "$i" == "testo incriminato" ] #attenzione che questo e true se e solo se l'intera riga e' uguale a "testo incriminato" e non se la riga contiene "testo incriminato"
            then
                    s=$i
                    flag=1
                    echo $flag #qui mi stampa 1
            fi
    done < $HOME/pippo/pippologs/test.txt
    
    echo $flag #dovrebbe stampare 1
    
    if [ $flag -eq 1 ]
            then
                    echo "faccio quello che devo fare"
            fi
    funziona !
    incredibile !
    in effetti il testo deve essere contenuto ma andiamo un passo per volta

    grazie a tutti ciao ciao
    Ho mille libri sotto il letto non leggo più
    ho mille sogni in un cassetto non lo apro più
    parlo da solo e mi confondo e penso
    che in fondo sì sto bene così

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.