Macos mount命令中的转义特殊字符

Macos mount命令中的转义特殊字符,macos,bash,escaping,mount,smb,Macos,Bash,Escaping,Mount,Smb,我正在尝试在MacOSX Mavericks上挂载windows共享文件夹。一个简单的用户名和密码就可以了 mount-t smbfs//user2:password2@server1.mydomain.com/myproject~/localmap 在尝试更有效的用户名和密码时,我发现解析URL失败的错误。 详情如下: 用户名:mydomain\user1 密码:A%b$c@d!e#f 命令已尝试 mount-tmbfs//mydomain\user1:A%b\$c\@d\!e#f@serve

我正在尝试在MacOSX Mavericks上挂载windows共享文件夹。一个简单的用户名和密码就可以了

mount-t smbfs//user2:password2@server1.mydomain.com/myproject~/localmap

在尝试更有效的用户名和密码时,我发现解析URL失败的错误。 详情如下: 用户名:mydomain\user1 密码:A%b$c@d!e#f

命令已尝试

mount-tmbfs//mydomain\user1:A%b\$c\@d\!e#f@server1.mydomain.com/myproject~/localmap


根据我的发现,$和!需要逃走。需要关于如何转义特殊字符的帮助。顺便说一句,在第一种情况下,仅使用不带域的用户名似乎有效

单引号转义shell元字符,并且可以使用
%40
表示密码中的
@

mount -t smbfs '//mydomain;user1:A%b$c%40d!e#f@server1.mydomain.com/myproject' ~/localmap

单引号转义shell元字符,可以使用
%40
表示密码中的
@

mount -t smbfs '//mydomain;user1:A%b$c%40d!e#f@server1.mydomain.com/myproject' ~/localmap

使用
\
转义特殊符号 若要转换某些特殊符号,可以编写额外的字符串,其中$1-是为转换提供的参数

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

user1=$(sed-e“s/+/%2B/g;s/@/%40/g;s/\/%5F/g“使用
\
转义特殊符号 若要转换某些特殊符号,可以编写额外的字符串,其中$1-是为转换提供的参数

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

user1=$(sed-e“s/+/%2B/g;s/@/%40/g;s//%5F/g”只需对您的特殊字符进行编码即可

@ -> %40
$ -> %24
! -> %21 
其他字符可在此处找到:

e、 g

那么这应该对你有用:

mount -t smbfs //someone:passw%40rd@server/path /Volumes/path

只需编码你的特殊字符

@ -> %40
$ -> %24
! -> %21 
其他字符可在此处找到:

e、 g

那么这应该对你有用:

mount -t smbfs //someone:passw%40rd@server/path /Volumes/path

使用nodejs对url内容进行编码可能很方便:

$ node -e 'console.log(encodeURIComponent("A%b$c@d!e#f"))'
A%25b%24c%40d!e%23f
解码到另一个方向:

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

使用nodejs对url内容进行编码可能很方便:

$ node -e 'console.log(encodeURIComponent("A%b$c@d!e#f"))'
A%25b%24c%40d!e%23f
解码到另一个方向:

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

请看,那里的第一个答案对我有效。基本上,您使用凭据创建一个文件,然后指定该文件而不是用户名和密码。

请看,那里的第一个答案对我有效。基本上,您使用凭据创建一个文件,然后指定该文件而不是用户名和密码。

I see您尝试的命令中有转义符(``)。出现了什么错误?下面是错误消息
mount\u smbfs:URL解析失败,请更正URL并重试:无效参数
我看到您有转义符(``)在您尝试的命令中。您遇到了什么错误?下面是错误消息
mount\u smbfs:URL解析失败,请更正URL并重试:无效参数
单引号和分号没有问题,但密码中的特殊字符仍然给出相同的错误消息。我怀疑它是@符号,因为它是用于将密码与服务器名称分开是的,yikes。进行了编辑,并进行了一次旋转。下一个级别的修复并不漂亮……单引号和分号很好,但密码中的特殊字符仍会给出相同的错误消息。我怀疑是@符号,因为它用于将密码与服务器名称分开ver-nameYeah,yikes.进行了编辑,尝试一下。下一个级别的修复不太好…这对我来说是有效的:mount-t smbfs//user:passw\@rd@server/path/volume/path这是对我有用的:mount-t smbfs//user:passw\@rd@server/路径/卷/路径