2009-03-13 2 views
2

Ich habe eine Variable, die einen Unix-Pfad, zum Beispiel speichert:auf DOS-Pfad

typeset unixpath=/foo/bar/ 

Und ich muss wandeln es in einem DOS-Pfad mit Kornshell (KSH) Scripting:

dospath=\\\\foo\\\\bar\\\\ 

Antwort

2

Versuchen:

dospath=`echo $unixpath | sed 's/\//\\\\/g'` 

Dank David Wolever mich daran erinnert ein $ zu ac zu verwenden Übernehmen Sie den Wert der Variablen!

+0

Ich bin kein Korn-Experte, aber ich denke, das braucht irgendwo ein '$' ... Wie auch immer, genau so würde ich es machen, wenn du nicht zuerst gepostet hättest. –

+0

Es hängt davon ab, ob eleven81 bedeutet: echo/unix/path oder echo $ unixpath; beides könnte gültig sein. –

1

Wenn Sie ksh93:

ksh-M 93t 2008-11-04$ unixpath=/foo/bar/    
ksh-M 93t 2008-11-04$ print ${unixpath//\//\\\\\\\\} 
\\foo\\bar\\ 
0

ich als Kommentar zu eleven81 Antwort hinzugefügt haben würde, aber ich habe nicht die Punkte

es etwas besser lesbar zu machen, wie über eine alternative Verwendung von sed Begrenzer

dh

dospath=`echo $unixpath | sed 's./.\\\\.g'` 
1

Die AT & T ksh93 für Windows können Sie Variablen für die automatische Konvertierung mit '-H typeset' markieren:

typeset $ -H home = $ HOME & & print $ home = $ HOME C: \ users \ Henk =/home/Henk