Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    434

    [bash] variabile in un ciclo

    ciao,
    sto cercando di imparare a scrivere qualche script in bash, ho questo blocco di codice:


    messaggio="abcde"

    if [ $num -gt 0 ]; then

    (IFS='
    ';
    for riga in $(/bin/cat $file); do
    messaggio=$messaggio$riga" "
    echo $messaggio ####funge
    done
    )
    echo $messaggio ####non funge
    praticamente il primo echo funziona, ovvero ad ogni ripetizione del ciclo ottengo la stringa "messaggio" concatenata con la riga del $file. All'ultima iterazione avrò:

    messaggioriga1 riga2 riga3 riga4 riga... rigan

    Il secondo echo, invece, mi visualizza solo il contenuto originale di "messaggio", ovvero abcde in questo caso.

    Si tratta di problemi dovuti all'ambito diverso? Che posso fare?

  2. #2
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    Devi togliere le parentesi tonde, con quelle crei una subshell, perciò la variabile "messaggio" al loro interno sarà una variabile locale a quest'ultima!
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  3. #3
    Utente di HTML.it L'avatar di wolf64
    Registrato dal
    Jul 2001
    Messaggi
    521
    PS: ti do il link ad una buona guida, tradotta in italiano se preferisci:
    http://www.pluto.it/ildp/guide/abs.html
    Powered by Slack Current - Kernel 2.6.22
    Slackware Evangelist
    My LUG (Linux User Group): LinuxVar (LUG di Varese)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    434
    denghiù

    ora funge

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.