2009-03-13 10 views
2

je une variable qui stocke un chemin Unix, par exemple:Convertir chemin Unix au chemin DOS

typeset unixpath=/foo/bar/ 

Et je dois le convertir en un chemin DOS en utilisant les scripts KornShell (ksh):

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

Répondre

2

Essayez:

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

Merci à David Wolever pour me rappeler d'utiliser un $ AC stop la valeur de la variable!

+0

Je ne suis pas un expert en korn, mais je pense qu'il faut un '$' quelque part ... Bref, c'est exactement comme ça que je le ferais, si vous n'aviez pas posté d'abord. –

+0

Cela dépend si eleven81 signifiait: echo/unix/path ou echo $ unixpath; soit pourrait être valide. –

1

Si vous avez ksh93:

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

J'ai ajouté un commentaire à la réponse de eleven81, mais je n'ai pas les points

pour le rendre un peu plus lisible, comment sur l'utilisation d'une solution de rechange sed delimiter

-à-dire

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

L'AT & T ksh93 pour Windows vous permet de marquer des variables pour la conversion automatique avec 'Composas -H':

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

Questions connexes