Have you experienced despair?
接了一个服务器,md密码复杂程度太高,配置expect一直拨错,想到了转义,但是转起来好麻烦。
那些特殊字符需要转义
带有-解决方案
为了减少重复手工输入密码的步骤,一般会使用expect来自动输入,但是某些密码中含有的特殊字符会导致send命令出现错误,
网上的教程一般是建议加上转义符,但是遇到类似短横线‘-’这种字符还是会报错,最佳方法是用'send --'来输入含有特殊字符的字符串。
比如,密码是“-dafd@f12&-a”,so
send -- "-dafd@f12&-a"
其他特殊字符转义
上一篇记录了,iTerm2自动连接ssh的步骤,如果密码简单是可以成功的。但是比如我:
这个还是很绝望的,死活报错。
转义后
expect需要转义的符号列表
- \ 需转义为 \\\
- } 需转义为 \}
- { 需转义为 \{
- [ 需转义为 \[
- ] 需转义为 \]
- + 需转义为 \+
- - 需转义为 \-
- * 需转义为 \*
- / 需转义为 \/
- = 需转义为 \=
- ^ 需转义为 \^
- ? 需转义为 \?
- $ 需转义为 \\\$
- % 需转义为 \\\%
- @ 需转义为 \\\@
- ` 需转义为 \`
- " 需转义为 \\\"
注意:以上都是在双引号下面使用,如果没有单引号,或者单引号,请直接使用\转义
如有补充,欢迎 留言~
happy weekend~
感谢(如侵联删):
expect需要转义的符号列表:https://blog.csdn.net/secondjanuary/article/details/21775953
perl的expect发送特殊字符问题:https://blog.csdn.net/laputa73/article/details/6077636