我可以连接这个脚本从Linux到Windows RDP会话:
#!/bin/bash /usr/bin/rdesktop -N -xm -u Administrator -p secret123 -d DOMAIN1 127.0.0.1:33891
(远程Windows服务器的rdp端口安全地通过本地主机上的端口33891)
但是这个脚本不能正确地传输密码:
#!/bin/bash /usr/bin/rdesktop -N -xm -u Administrator -p #secret$123# -d DOMAIN2 127.0.0.1:33892
我该如何编码密码中的特殊字符?
我也想知道,如果我select/ bin / sh作为脚本的shell是否会有所作为。
编辑:
我发现这个作品:
\ #secret \ $ 123 \#
我build议您将密码存储在一个文件中,并通过pipe道将其传递到rdesktop 。 这样,运行ps或类似命令时,密码不会在命令行中显示为参数。
cat secretfile | /usr/bin/rdesktop -N -xm -u Administrator -p - -d ...
但是,要回答你的问题,只要引用这个论点就足以使其发挥作用:
/usr/bin/rdesktop -N -xm -u Administrator -p '#secret$123#' -d ...
编辑:
要使用一个variables(该值将在ps输出中可见):
var='#secret$123#' /usr/bin/rdesktop -N -xm -u Administrator -p "$var" -d ...
要么
var=$(<secretfile) # read from a file (doesn't work in sh) /usr/bin/rdesktop -N -xm -u Administrator -p "$var" -d ...
特殊字符需要在Linux命令行中用'\'转义。
你可以发布你的密码,我会告诉你它应该看起来如何。 ;)开玩笑…当然。