PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : " " in einer sh-Datei !?!?


gonzo
18.12.2004, 19:25
Hallo Leute,
ich hab ein Problem :-)

Ich hab mir eine sh-Datei geschrieben die mir mit wenig aufwand das updaten mienes CS:S-servers helfen soll. Leider ist es so das ich bei dem Befehl die " " mit senden muss.

ich rufe also mein shell-script auf

./css.sh update /home/css USERNAME PASSWORD

ausgeführt werden soll dann

screen -A -d -m -S $UPDATENAME ~/steam -command update -game "Counter-Strike Source" -dir $2 -username $3 -password $4

steam im screen wird aufgerufen nur leider scheitert es daran das die Anführungszeichen verloren gehen. und somit meckert steam das es den Parameter Source nicht kennt.
Kann ich irgendwie die "" mitsenden so das die nicht verloren gehen

freue mich auf jede antwort.
gonzo


BerettaM92
18.12.2004, 19:48
hast du denn schon einmal versucht ein \ vor die " zu schreiben? auch wenn ich leider noch kein shell scripting kann (habe aber vor es bald endlich zu lernen) denke ich dass es wie bei den meisten sprachen reicht ein backslash davorzusetzen, dass das zeichen nichtmehr als sonderzeichen erkannt wird

also würde das ganze so aussehen:

screen -A -d -m -S $UPDATENAME ~/steam -command update -game \"Counter-Strike Source\" -dir $2 -username $3 -password $4

versuche es einfach mal, wenn es nicht funktioniert dann wars wenigstens den versuch wert

gonzo
18.12.2004, 19:52
Hallo,
hatte ich schon Probiert. funzt leider nicht. :( ich hab auch schon

screen -A -d -m -S $UPDATENAME ~/steam -command update -game 'Counter-Strike Source' -dir $2 -username $3 -password $4

Probiert.

grüsse

BerettaM92
18.12.2004, 20:10
habe gerade ein wenig gesucht und bin auf das gestoßen:

echo "Hello" # Hello
echo "\"Hello\", he said." # "Hello", he said.

angeblich soll es so funktionieren aber wenn du sagst es geht nicht glaube ich das auch (bin grad unter win kann das nciht selbst testen) aber habe hier noch etwas über escape sequenzen :

echo "==============="
echo "QUOTATION MARKS"
# Version 2 and later of Bash permits using the $'\nnn' construct.
# Note that in this case, '\nnn' is an octal value.
echo $'\t \042 \t' # Quote (") framed by tabs.

# It also works with hexadecimal values, in an $'\xhhh' construct.
echo $'\t \x22 \t' # Quote (") framed by tabs.
# Thank you, Greg Keraunen, for pointing this out.
# Earlier Bash versions allowed '\x022'.
echo "==============="
echo

so wie ich das verstehe stehen entweder \042 oder \x22 für ein "

versuche das einmal hoffe dass es diesmal funktioniert :)

gonzo
18.12.2004, 20:14
Oh jesses,
kommando zurück. was bin ich doof. Ich hatte ausversehen / benutzt :mauer:

ich glaub ich sitz zu lang vorm Rechenmaschinchen. :D

mit \"Counter-Strike Soruce\" gehts.

danke für euren Anstoss.
Ich glaub ich wäre Frustriert ins Bett gegangen.

grüsse

BerettaM92
18.12.2004, 20:16
hahaha da bin ich aber froh. habe überall gelesen dass ein backslash die spezielle bedeutung aufhebt und du sagst da geht nix. naja immerhin,
viel spaß noch mit dem script