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

    [bash] curioso problema

    sto scrivendo uno script bash, che mi produce in output un file contenente un altro script.
    Quest altro script lo costruisco man mano in una variabile, tipo
    codice:
    MY_SCRIPT="
    #!/bin/bash\n
    #...
    cp -r * mypath\n
    #...
    "
    e alla fine faccio un
    codice:
    echo -e $MY_SCRIPT > miofile
    il problema sta nel fatto che quel * nel cp -r mi viene rimpiazzato con i nomi di tutti i file nella directory corrente, il che e' molto strano dal momento che sta dentro alle virgolette, dovrebbe stamparmi un semplice *

    Idee?
    max

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

  2. #2
    ho risolto con un workaround, in pratica invece di fare cp -r * faccio cp -r `ls`
    ma sono curioso di sapere da dove deriva il problema
    max

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

  3. #3

  4. #4
    Possibile che sia colpa del parametro "-e" passato a echo?

  5. #5

  6. #6
    facendo delle prove dalla riga di comando e' un problema di quoting:

    codice:
    echo *   -> stampa la lista delle diretory (come un ls, ma senza colori)
    echo "*" -> stampa *
    
    (stessa cosa con echo -e)
    ma nel mio caso la * sarebbe tra virgolette... mah!
    max

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    225
    Certo che e' un problema di quoting...
    Provato con "\*"
    Consiglio in generale http://www.pluto.it/files/ildp/guide/abs/index.html, che si trova anche in pdf

  8. #8
    si', provato \*, mi esce \*, ergo, l'* non e' un carattere da escapare.
    max

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    225
    E' echo che esplode gli argomenti:
    codice:
    MYVAR="*"
    echo $MYVAR
    > bin boot dati dev etc home lib ...
    Con gli apici echo non esplode gli argomenti:
    codice:
    MYVAR="*"
    echo "$MYVAR"
    > *

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.