|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 316
|
Help su shell script: caratteri speciali
Ciao ragazzi,
stavo realizzando uno script che mi chiama sed e modifica alcune cose all'interno di un file. Codice:
#!/bin/sh $ip = "ip di esempio"; sed -e 's/^bind.*$/bind-address = $ip/' newFile > newFileTemp Come posso fare affinchè sh lo ignori e mi esegua correttamente quel sed?? ![]() Grazie in anticipo ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Puoi usare \ davanti al simbolo speciale di turno per fare si che questo sia interpretato come un normale carattere.
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 316
|
avevo già provato con lo slash, senza nessun risultato; infatti facendo cosi
Codice:
sed -e 's/^bind.*$/bind-address \= $ip/' newFile > newFileTemp Codice:
./testScript: line 3: =: command not found Altre proposte? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Occhio alla dichiarazione della variabile:
Codice:
#!/bin/sh IP="ip di esempio" sed -e 's/^bind.*$/bind-address = $IP/' newFile > newFileTemp |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 316
|
Quote:
però nel file nuovo creato (newFileTemp) mi scrive direttamente $IP e non il contenuto della variabile (cioè nell'esempio "ip di esempio"), perchè probabilmente riconosce il tutto come stringa. Come faccio a far stampare il contenuto?? Grazie dell'aiuto, non ci lavoro quasi mai con la shell :| Ultima modifica di avastreg : 10-08-2008 alle 10:43. |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Perché hai usato ' per la stringa invece di ". Con gli apici singoli le variabili non vengono sostituite con il loro contenuto.
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 316
|
Quote:
Cmq nel frattempo ho scoperto di non aver più bisogno di questo script, che serviva per settare il bind-address di mysql all'indirizzo aggiornato (ho ip variabile avendo telecom) a cui accedo via dynamic dns. Ho scoperto che bastava settare il bind-address a 0.0.0.0 per poter accedere a tutti gli indirizzi ![]() Grazie a tutti per i chiarimenti ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:15.