Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Kleine Shell-Frage

Kleine Shell-Frage

Jan_L
Jan_L18.09.0518:24
Hey ho!
Ich skripte grad mal ein bisschen als Abwechslung zu Obj.C/Cocoa.

Mein Problem:
Ich will in einer Variable ($OPEN_PATH") alle "\" durch "/" ersetzen. Wie macht man das?
So gehts nicht:
OPEN_PATH=`echo $OPEN_PATH | sed -e "1,$ s/\///g"`
Naja, irgendwie klar . Aber wie dann??? Hab schon ein paar andere formatierungen ausprobiert, aber nix hat gefunzt.

Danke schön & schönen Sonntag

Jan_L
0

Kommentare

Rantanplan
Rantanplan18.09.0518:41
Klar, kannste doch so machen. Nur halt richtig

OPENPATH=$(echo $OPENPATH | sed -e 's/\\/\//g')
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Arachnid
Arachnid18.09.0518:45
und was macht der Befehl?
0
Jan_L
Jan_L18.09.0518:46
Allervielsten dank, das klappt.
Sowas mit $(...) hab ich noch nie gesehn. Interessant.
0
Rantanplan
Rantanplan18.09.0518:46
Hat er doch geschrieben:

Ich will in einer Variable ($OPEN_PATH") alle "\" durch "/" ersetzen.

Ok, ich hab sie versehentlich OPENPATH anstatt OPEN_PATH genannt...
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Rantanplan
Rantanplan18.09.0518:50
Jan_L
Sowas mit $(...) hab ich noch nie gesehn. Interessant.

Das ist (fast) identisch zu den veralteten Backticks, die ich nie gemocht habe. Man übersieht sie so leicht.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Jan_L
Jan_L18.09.0518:52
Arachnid
Er ersetzt halt alle Backslashes durch Slashes. Oder was meinst du jetzt?

Ich brauch den Befehl nun wahrscheinlich doch nicht. Sollte in ein Skript rein, mit dem man die Autorun-Funktion von Windows nutzen kann, also dass wenn man ne CD einlegt gelich was passiert, aber es ist wohl unnütz, da meistens Windows-Programme ausgeführt werden.

Wenigstens wieder was gelernt
0
Jan_L
Jan_L18.09.0518:53
Rantaplan
Wo ist denn der Unterschied außer dass man es sieht?
0
Rantanplan
Rantanplan18.09.0518:56
man bash

When the old-style backquote form of substitution is used, backslash retains its literal meaning except when followed by $, `, or \. The first backquote not preceded by a backslash terminates the command susstitution. When using the $(command) form, all characters between the parentheses make up the command; none are treated specially.
„Wenn ich nicht hier bin, bin ich auf dem Sonnendeck“
0
Jan_L
Jan_L18.09.0518:58
Thx
0
Jan_L
Jan_L18.09.0519:19
Das sieht jetzt so aus:
OPEN_PATH=$(cat /Volumes/$1/autorun.inf | grep "OPEN=")
#echo $OPEN_PATH
OPEN_PATH=$(echo $OPEN_PATH | sed -e "1,$ s/"OPEN="/""/g")
#echo $OPEN_PATH
OPEN_PATH=$(echo $OPEN_PATH | sed -e 's/\\/\//g')
echo $OPEN_PATH
# bringt nix:
#open /Volumes/$1/$OPEN_PATH

Und weiter mach ich nicht, weils ja eh keinen Sinn hat

Schönen Sonntag wünsch ich

Jan_L
0
Jan_L
Jan_L18.09.0519:20
achja: Da gehört natürlich noch #!/bin/bash davor. Das hab ich mitsamt den Copyright-Hinweisen usw. wegelassen
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.