Pagina 1 di 1

Problema con sostituzione stringhe

Inviato: domenica 3 giugno 2007, 21:36
da Astu
Ho provato a generalizzare la sintassi della sostituzione. Di norma sarebbe tipo:

Codice: Seleziona tutto

 
$variabile=abc123
echo ${variabile//abc/sostituita}
che darebbe "sostituita123"

e io ho provato a rendere variabili la stringa da sostituire e quella da inserire, chiamandole $da e $a:

Codice: Seleziona tutto

 
variabile=abc123
da=abc
a=sostituita
echo ${variabile//${da}/${a}}
Solamente che funziona solo se fatto da terminale e non da script!
Mi dice infatti:
./mioscript: line 43: syntax error near unexpected token `echo'
./mioscript: line 43: `      echo "${f//${da}/${a}}"

Re: Problema con sostituzione stringhe

Inviato: domenica 3 giugno 2007, 21:42
da twilight
lo lanci con "sh" o comunque utilizzi #!/bin/sh nello script, giusto?

prova a lanciarlo con "bash" o utilizzare la linea #!/bin/bash, sh punta a dash.

ciao

Re: Problema con sostituzione stringhe

Inviato: domenica 3 giugno 2007, 23:08
da Astu
Veramente prima non avevo specificato nessuna di quelle due righe che mi hai proposto, purtroppo anche aggiungendo #!/bin/bash non va...

Re: Problema con sostituzione stringhe

Inviato: lunedì 4 giugno 2007, 21:49
da Astu
Aiuto! ???

Re: Problema con sostituzione stringhe

Inviato: martedì 5 giugno 2007, 0:30
da max.achille
Se l'errore è unexpected token ecc possibile anche che l'errore sia sulla riga precedente.. posta l'intero codice..

Re: Problema con sostituzione stringhe

Inviato: martedì 5 giugno 2007, 17:58
da Astu
Cavoli è vero!
Avevo sbagliato il ciclo for, mancava il punto e virgola prima del do:

Codice: Seleziona tutto

for f in `cat $file`; do 
	echo ${f//${da}/${a}}
done
Mi sono confuso perché nel wiki http://wiki.ubuntu-it.org/Programmazione/LinguaggioBash il punto e virgola non appare quando parla del ciclo for alla fine della pagina, mentre appare più sopra quando lo usa per fare un esempio...

Grazie mille!