2014-11-19 15 views
5

Próbuję zamontować folder współdzielony systemu Windows na Mac OS X Mavericks. Uproszczony nazwę użytkownika i hasło działało dobrzeEscape znaki specjalne w komendzie mount

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

Na wypróbowanie bardziej prawidłową nazwę użytkownika i hasło, otrzymuję błędy parsowania URL nieudane. Dane są Login: mydomain \ user1 Hasło: A% b $ c @ d e f

# Komenda próbował to

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

podstawie tego, co znalazłem, $ a! musi uciekać. Potrzebujesz pomocy, jak uciec od znaków specjalnych. Nawiasem mówiąc, tylko przy użyciu nazwy użytkownika bez domeny wydaje się działać w pierwszym przypadku

+0

Widzę, że masz polecenia ('\') w poleceniu, które próbowałeś. Jaki błąd dostałeś? – bishop

+0

Oto komunikat o błędzie 'mount_smbfs: Analizowanie adresu URL nie powiodło się, popraw adres URL i spróbuj ponownie: Niepoprawny argument' – Karthick

+0

Ahh, spróbuj mojej odpowiedzi. – bishop

Odpowiedz

4

Pojedyncze cudzysłowy uciec powłoki meta-znaków, a semi-colon should separate the domain controller from the credentials, i może korzystać %40 do reprezentowania @ hasło:

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

Pojedynczy cudzysłów i średnik są w porządku, ale specjalne znaki w haśle wciąż wyświetlają ten sam komunikat o błędzie. – Karthick

+0

Podejrzewam, że jest to symbol @, ponieważ jest używany do oddzielania hasła od nazwy serwera – Karthick

+0

Tak, yikes. Wykonał edycję, daj temu wir.Następny poziom poprawki nie jest ładny ... – bishop

2

użytku \ uciec symbole specjalne jeśli chcesz przekonwertować niektóre znaki specjalne można napisać dodatkowy łańcuch, gdzie 1 $ - jest parametr, który przewiduje przekształcenie

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

, a następnie można użyć " " i wywołać zmienną skonwertowaną w ten sposób $user1

1

Może być przydatny do wykorzystania nodejs kodować materiał URL:

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

Decode iść w drugą stronę:

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