macOS Mojave(配置篇):expect中send特殊字符(登录ssh时,自动连接远程)

Have you experienced despair?

接了一个服务器,md密码复杂程度太高,配置expect一直拨错,想到了转义,但是转起来好麻烦。

那些特殊字符需要转义

带有-解决方案

为了减少重复手工输入密码的步骤,一般会使用expect来自动输入,但是某些密码中含有的特殊字符会导致send命令出现错误,

网上的教程一般是建议加上转义符,但是遇到类似短横线‘-’这种字符还是会报错,最佳方法是用'send --'来输入含有特殊字符的字符串。

比如,密码是“-dafd@f12&-a”,so

send -- "-dafd@f12&-a"

其他特殊字符转义

上一篇记录了,iTerm2自动连接ssh的步骤,如果密码简单是可以成功的。但是比如我:

这个还是很绝望的,死活报错。

转义后

expect需要转义的符号列表

  1. \ 需转义为 \\\
  2. } 需转义为 \}
  3. { 需转义为 \{
  4. [ 需转义为 \[
  5. ] 需转义为 \]
  6. + 需转义为 \+
  7. - 需转义为 \-
  8. * 需转义为 \*
  9. / 需转义为 \/
  10. = 需转义为 \=
  11. ^ 需转义为 \^
  12. ? 需转义为 \?
  13. $ 需转义为 \\\$
  14. % 需转义为 \\\%
  15. @ 需转义为 \\\@
  16. ` 需转义为 \`
  17. " 需转义为 \\\"

注意:以上都是在双引号下面使用,如果没有单引号,或者单引号,请直接使用\转义

如有补充,欢迎 留言~

happy weekend~

感谢(如侵联删):

expect需要转义的符号列表:https://blog.csdn.net/secondjanuary/article/details/21775953

perl的expect发送特殊字符问题:https://blog.csdn.net/laputa73/article/details/6077636

发布了178 篇原创文章 · 获赞 132 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/Soinice/article/details/97611699