2014-11-19 9 views
5

Ich versuche, einen freigegebenen Windows-Ordner auf Mac OSX Mavericks zu mounten. Eine stark vereinfachte Benutzernamen und Passwort hat gut funktioniertEscape Sonderzeichen in Mount-Befehl

mount -t smbfs //user2:[email protected]/myproject ~/localmap

zu versuchen, die mehr gültigen Benutzernamen und ein Passwort heraus, dass ich Fehler bin immer die URL Parsing fehlgeschlagen. Die Details sind Benutzername: mydomain \ user1 Passwort: A% b $ c @ d e # f

Der versucht, Befehl ist

mount -t smbfs //mydomain\user1:A%b\$c\@d\!e#[email protected]/myproject ~/localmap

Basierend auf was ich fand, $ und! muss entkommen sein. Brauchen Sie Hilfe, wie Sie den Sonderzeichen entkommen können. Im Übrigen ohne die Domäne nur den Benutzernamen verwenden scheint

+0

Ich sehe Sie haben Escapes ('\') in dem Befehl, den Sie versucht haben. Welchen Fehler bekommst du? – bishop

+0

Hier ist die Fehlermeldung 'mount_smbfs: URL-Analyse fehlgeschlagen, bitte korrigieren Sie die URL und versuchen Sie es erneut: Ungültiges Argument' – Karthick

+0

Ahh, versuche meine Antwort. – bishop

Antwort

4

Einfache Anführungszeichen Maskiert Shell-Metazeichen im ersten Fall zu arbeiten, a semi-colon should separate the domain controller from the credentials und %40 können Sie ein @ im Passwort repräsentieren:

mount -t smbfs '//mydomain;user1:A%b$c%40d!e#[email protected]/myproject' ~/localmap 
+0

Das einfache Anführungszeichen und der Semikolon sind in Ordnung, aber die Sonderzeichen im Kennwort geben immer noch die gleiche Fehlermeldung. – Karthick

+0

Ich vermute, es ist das @ -Symbol, da es verwendet wird, um das Passwort vom Servernamen zu trennen – Karthick

+0

Ja, yikes. Habe einen Schnitt gemacht, gib dem einen Wirbel.Die nächste Stufe der Reparatur ist nicht schön .... – bishop

2

Verwenden \ Sonderzeichen zu entkommen wenn Sie einige spezielle Symbole umwandeln möchten, können Sie zusätzliche Zeichenfolge schreiben, wobei 1 $ - Parameter, den Sie für die Umwandlung von

user1=$(sed -e "s/+/%2B/g;s/@/%40/g;s/_/%5F/g" <<< "$1") 
bereitzustellen

und dann können Sie " " verwenden und rufen Sie Ihre konvertierte Variable wie folgt $user1

2

Codieren Sie einfach Ihre Sonderzeichen. http://www.degraeve.com/reference/urlencoding.php

zum Beispiel:

@ -> %40 
$ -> %24 
! -> %21 

Andere Zeichen finden Sie hier

username="someone", password="[email protected]" 

Dann sollte dies für Sie arbeiten:

mount -t smbfs //someone:passw%[email protected]/path /Volumes/path 
+0

das ist, was für mich funktionierte: mount -t smbfs // Benutzer: passw \ @ rd @ Server/Pfad/Volume/Pfad –

1

könnte nützlich sein, NodeJS zu verwenden, um die URL Sachen zu kodieren:

$ node -e 'console.log(encodeURIComponent("A%[email protected]!e#f"))' 
A%25b%24c%40d!e%23f 

Decode den anderen Weg zu gehen:

$ node -e 'console.log(decodeURIComponent("A%25b%24c%40d!e%23f"))' 
A%[email protected]!e#f