← Back to team overview

sslug-teknik team mailing list archive

RE: Erstatte en linie med en anden i script

 

Jeg mener at man skal bruge dobbeltquotes omkring strenge i bash og ikke enkeltquotes:
Jeg tror at bruger man dobeltquotes, så kan man bruge variable, men bruger man enkeltqotes får man det man skriver (jævnfør nedenstående)


[sofc@localhost ~]$ echo "test"
test
[sofc@localhost ~]$ echo "\"test\""
"test"
[sofc@localhost ~]$ echo "\'test\'"
\'test\'
[sofc@localhost ~]$ echo "'test'"
'test'
[sofc@localhost ~]$ echo 'test'
test
[sofc@localhost ~]$ echo '\"test\"'
\"test\"
[sofc@localhost ~]$ echo '"test"'
"test"
[sofc@localhost ~]$ f="xyz"
[sofc@localhost ~]$ echo $f
xyz
[sofc@localhost ~]$ echo \"$f\"
"xyz"
[sofc@localhost ~]$ echo '$f'
$f
[sofc@localhost ~]$ echo \'$f\'
'xyz'
[sofc@localhost ~]$ echo "$f"
xyz


Håber at du kan fådet til at virke.. :-)

Søren



> -----Original Message-----
> From: Torben Andersen [mailto:Torben.Andersen@xxxxxxxxxxxxxxxxxx] 
> Sent: Friday, August 15, 2008 11:55 AM
> To: sslug-teknik@xxxxxxxx
> Subject: RE: [TEKNIK] Erstatte en linie med en anden i script
> 
> Hej igen og tak for feedback,
> 
> Har forsøgt med at kalde perlscript direkte med '' omkring 
> hele variablem med anførselstegn indeni og mellemrum og det 
> virker. Kan bare ikke finde ud af at få bash scriptet til på 
> passende måde at sætte '' omkring:
> --------------------------------------
> modified_algo2=\'$modified_algo\'
> echo $modified_algo2
> 
> cat $5 |./substitute.pl $1 $2 $modified_algo2 >output.txt
> --------------------------------------
> 
> $modified_algo2 har den rigtige værdi ('.L1TH 5 "apb" 
> "C0805_BDY" 0 2 0 0 -15 20 0 0 0 0 0 0 0 0 0 0'). Hvis jeg 
> kalder Perl scriptet direkte fra shellen, sætter den den 
> korrekte værdi ind. Hvis jeg kalder perlscriptet fra Bash 
> scriptet, kommer der til at stå: 
> 
> '.L1TH og intet andet.
> 
> Nogen råd??
> 
> Best Regards/Med venlig hilsen
> Torben Andersen
> 
> -----Original Message-----
> From: soeren.koch@xxxxxxxx [mailto:soeren.koch@xxxxxxxx] 
> Sent: 15. august 2008 11:27
> To: sslug-teknik@xxxxxxxx
> Subject: RE: [TEKNIK] Erstatte en linie med en anden i script
> 
> Hmm det må være noget med at escape ordentligt (mit gæt er at 
> der i bahs filen skal stå noget i stil med \\\" Altså 3 
> escapes efterfulgt af " 
> Du må prøve dig frem.
> Jeg havde selv samme problem engang (om end det var et 
> perlscript der skulle generere end html side indeholdende et 
> javascript der skulle lave en popup html med et javascript 
> til at lukke den når den mistede fokus, tror nok jeg endte 
> med 8 escapes hver gang jeg skulle lave en " eller ' for at 
> de 'overlevede' korrekt....)
> 
> Søren
> 


Follow ups

References