You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ldapsearch命令中转义密码里的单引号及特殊字符?

解决ldapsearch命令中密码含特殊字符的转义问题

问题根源

你之前的错误在于对shell单引号的转义规则理解有误:shell单引号内的所有字符都会被当作字面量,反斜杠在单引号内无法转义单引号,所以你写的'test!\'1234'实际传递给ldapsearch的密码是test!\1234,和真实密码test!'1234不符,才会返回Invalid credentials。

两种可行解决方案

1. 用双引号包裹密码(推荐)

这是最简便的方式,双引号内的单引号不需要额外转义,直接写即可:

ldapsearch -h 127.0.0.1 -x -S 'ou' -D 'administrator' -w "test!'1234"

如果密码里包含双引号、$、反引号这类需要转义的字符,只需在字符前加反斜杠,比如密码是test!"$1234,就写成:

ldapsearch -h 127.0.0.1 -x -S 'ou' -D 'administrator' -w "test!\"\\$1234"

2. 单引号拆分法(适合必须用单引号的场景)

如果一定要用单引号包裹密码,需要把单引号拆分成三段:关闭当前单引号 → 用\'表示单引号 → 重新打开单引号继续输入剩余内容。比如密码test!'1234可以写成:

ldapsearch -h 127.0.0.1 -x -S 'ou' -D 'administrator' -w 'test!'\''1234'

这里的'\''逻辑是:'(关闭前面的单引号) + \'(转义的单引号) + '(重新打开单引号),最终拼接出正确的密码字符串。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:43:31