Elkeveredtem az idézőjelek között :S

Sziasztok!

Van egy függvény (mindegy, hogy honnan, ezt kell használni), ami lefuttat egy parancsot ilyetén:
bash -c -i -l "' echo -e \"X\" >>fajl '"
ahol X a paraméterül kapott string.
Na most nekem ebben a stringben van egy 'asdsad'-em, amire azt írja, hogy
bash: szoveg: No such file or directory, mert a ' nyílván megszakította a külső '-t, és emiatt rá akarná irányítani a fájlt.

A kérdés az az, hogy mit csináljak az X-el (aminek a tartalma kb: blablabla 'asdsad'), hogy úgy ahogy van, kiechozódjon és hozzácsapódjon a fájlhoz? Próbáltam sokféle módon, de csak nem találom el :(

Hozzászólások

Nem így kell egymásba ágyazni az idézőjeleket, inkább így próbáld:

bash -c 'echo -e "'"${x}"'" >>f'

Nem egészen értem azt hiszem :)

Van egy függvény, Perl amúgy, de azt hiszem ez lényegtelen. Meghívod így: fgv("omnomnom"); erre ő kiadja a shellnek a fenti parancsot: "' bash -c -i -l "' echo -e \"omnomnom\" >>fajl '"
Az én fájdalmam az, hogy az "omnomnom" egy olyan kifejezés, amiben szerepel ', és ezt az istennek sem tudom sehogy levédeni.
----
Hülye pelikán

$ echo $BASH_VERSION
3.2.39(1)-release

$ bash -c -i "echo -e \"xyz\" >f" ; echo $?
0

$ bash -c -i "'echo -e \"xyz\" >f'" ; echo $?
bash: echo -e "xyz" >f: command not found
127

$ bash -c -i "'echo -e \"xyz 'abc'\" >f'" ; echo $?
bash: echo -e "xyz abc" >f: command not found
127

$ bash -c -i "'echo -e \"xyz \'abc\'\" >f'" ; echo $?
bash: unexpected EOF while looking for matching `"'
bash: syntax error: unexpected end of file
2

Tökmindegy mit kell kiírnia az echo-nak, a "' ... '" eleve rossz, ha bash-ból hívom, ezért gondolom, hogy te nem bashból hívod, és az a nyelv kicsit máshogyan kezeli az aposztrófok együttálását.

Arra gondolok, hogy csinálj egy minimál perl fájlt, ami így néz ki:

#!/usr/bin/perl
...
system("bash -i ..");

azt a hibát adja, amit mondasz, és ezt posztold be. Meg a hibát is. Meg olyan X-el is, amivel jó.

Igaz igaz, nem tűnt fel mert ugyanazt a hibaüzenetet adja.

Egészen pontosan így adódik ki a parancs:
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -i /home/tetra/.../id_dsa -p 22 user@x.y.z.w bash -c -i -l "' echo -e \"X\" >> fajl '"

Tehát akkor a kérdés az, hogy hogy tudnám úgy X-t megadni, hogy lehessen benne '.

szerk: valamiért több sorba szedi, nem tudom hogy lehetne megszerelni, pedig kód tegben van.
----
Hülye pelikán