Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema in if!!!

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Problema in if!!!

    Ciao!!!!
    Non riesco a capire perchè non faccia un if in bash....
    Il problema è il seguente.... ho una variabile che contiene al suo interno spazi esempio ammettiamo che il valore della variabile var sia "45 67" con lo spazio tra 45 e 67...
    quando faccio la seguente verifa
    if [[ "${var:i:1}" == ""]] dove i assume valori da 0 fino alla lunghezza della stringa
    ho notato che questo controllo non funziona quando ${var:i:1} è uguale a carattere vuoto...eppure quando la condizione si verifica il programma dovrebbe svolgere le istruzioni all'interno dell'if e invece non lo fa....perchè questo....che cosa sbaglio??????????????

  2. #2
    non ho ben capito quello che vorresti fare, potresti postare il codice che hai scritto?
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

  3. #3
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319

    Re: Problema in if!!!

    Originariamente inviato da Azzurra85
    if [[ "${var:i:1}" == ""]]
    Una domanda sorge spontanea, ma il confronto tra stringhe non si fa con un = solo?!?!?! :master: aspetta azzurra, che rigurado i lucidi del prof....
    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Ecco la parte incriminata

    read var
    for (( i=0; i<${#var}; i++ ))
    do

    done

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Ecco la parte incriminata

    read var
    for (( i=0; i<${#var}; i++ ))
    do
    if [[ "${var:i:1}" == "" ]]; then

    done

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    107

    Ecco la parte incriminata

    read var
    for (( i=0; i<${#var}; i++ ))
    do
    if [[ "${var:i:1}" == "" ]]; then < - qui non fa questo if.... se var è 45 67 con lo spazio tra i due numeri
    echo "entra"
    fi
    done

  7. #7
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319
    Così dovrebbe andare (aggiungere lo spazio in " "!!!!!!):

    "read var
    for (( i=0; i<${#var}; i++ ))
    do
    if [[ "${var:i:1}" == " " ]]
    then #< - qui non fa questo if.... se var è 45 67 con lo spazio tra i due numeri
    echo "entra"
    fi
    done"

    questo è il mio output:

    "[matteo@behemoth ~]$sh prova.sh
    45 67
    entra
    [matteo@behemoth ~]$"

    p.s.: se funziona mi devi un favore
    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

  8. #8
    Si infatti, se volevi cercare lo spazio hai dimenticato di metterlo tra le virgolette
    GreyFox (Linux registered user #435102)
    greyfox.imente.org - GreyFox's shots (photo gallery)
    $ cd /pub
    $ more beer

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.