在 Bash shell 中获取并使用包含特殊字符的密码

2023-12-13

我在使用带有特殊字符(例如 $ )的密码时遇到了一些麻烦bashshell 脚本。

我的 shell 脚本是:

read -s -p "Password : " bindDNPass
ldapadd -H ldap://localhost -x -w $bindDNPass -D "dn=cn=Admin" -f /tmp/file.ldif

密码可能类似于 $Something18$。

嗯,命令

ldapadd -H ldap://localhost -x -W -D "dn=cn=Admin" -f /tmp/file.ldif` 

要求我的$Something18$,并且工作正常。

但如果我尝试

ldapadd -H ldap://localhost -x -w $Something18$ -D "dn=cn=Admin" -f /tmp/file.ldif

它不起作用。我猜它正在尝试解决变量$Something18,所以我尝试了\$Something18$, \$Something18\$, \\\$Something18$,...但它一直失败...

我能怎么做? (无需更改密码...)


将其放在双引号中并转义$符号避免特殊解释shell,

ldapadd -H ldap://localhost -x -w "\$Something18\$" -D "dn=cn=Admin" -f /tmp/file.ldif

(or) [更多推荐]

将其括在单引号内,让 shell 将其视为文字字符串而不扩展它,

ldapadd -H ldap://localhost -x -w '$Something18$' -D "dn=cn=Admin" -f /tmp/file.ldif

来自man bash page,

将字符括在双引号中可保留引号内所有字符的字面值,与$, , \, 和, 的例外情况 历史扩展已启用,!。这 字符 $ 并在双引号内保留其特殊含义. The 仅当后跟以下字符之一时,反斜杠才保留其特殊含义:$、`、"、\ 或 。双引号可以在双引号内引用,方法是在双引号前面加上反斜杠。如果启用,将执行历史扩展,除非!出现在双引号中的内容使用反斜杠进行转义。 ! 前面的反斜杠没有被删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Bash shell 中获取并使用包含特殊字符的密码 的相关文章

  • gdb 错误 - 文件不是可执行格式:无法识别文件格式

    我正在尝试使用 gdb 调试某个名为 xdf 的程序 但是当我运行 gdb xdf 时 出现以下错误 home nealtitusthomas X ray astronomy heasoft 6 24 x86 64 pc linux gnu
  • Linux 文本文件操作

    我有一个格式的文件 a href a href a href a href 我需要选择 之后但 之前的文本 并将其打印在行尾 添加后 例如 a href http www wowhead com search Su a a a a a
  • grails 上的同步块在 Windows 上有效,但在 Linux 上无效

    我有一个 grails 应用程序 它依赖于服务中的同步块 当我在 Windows 上运行它时 同步按预期工作 但当我在 ams linux 上运行时 会出现 StaleObjectStateException 该问题在以下示例中重现 cla
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 向伪 shell (pty) 发出命令

    我尝试使用 subprocess popen os spawn 来运行进程 但似乎需要伪终端 import pty master slave pty openpty os write master ls l 应该发送 ls l 到从属终端
  • 如何在fish shell脚本中获取程序名称?

    在 bash 中 与在 ruby 中一样 程序名称由 0 给出 鱼里有什么 如果有必要 我可以执行以下操作 set PROGRAM ps no header o args p self egrep o S 2 但我确信程序名称必须已经在某个
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • Linux 中的电源管理通知

    在基于 Linux 的系统中 我们可以使用哪些方法 最简单的方法 来获取电源状态更改的通知 例如 当计算机进入睡眠 休眠状态等时 我需要这个主要是为了在睡眠前保留某些状态 当然 在计算机唤醒后恢复该状态 您只需配置即可获得所有这些事件acp
  • 使用 mkfifo 和传输流,这可能吗?

    我想执行一个 bash 脚本来执行以下操作 应用程序 ffmpeg 生成实时传输流 ts 文件 我需要处理这个实时流 执行解复用等 现在我知道这必须通过 FIFO 来完成 但这是我的任务 我需要重定向 ffmpeg 的输出以写入 fifo
  • `docker run` 输出到 bash 变量 - 奇怪的行为

    我看到一些奇怪的行为从docker run到 bash 变量中 简单的例子 bin bash PWD docker run rm ti ubuntu pwd 2 gt 1 also tried with PWD docker run wit
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 自动检测log4j静态初始化错误的方法

    请注意 这更像是 Bash 问题 而不是 Java 问题 请参阅下面的注释 在每个类中配置log4j时 我们执行以下操作 public class Example private static final Logger log Logger
  • Linux命令列出所有可用命令和别名

    是否有一个 Linux 命令可以列出该终端会话的所有可用命令和别名 就好像您输入 a 并按下 Tab 键一样 但针对的是字母表中的每个字母 或者运行 别名 但也返回命令 为什么 我想运行以下命令并查看命令是否可用 ListAllComman
  • perf stat中的cycles注释是什么意思

    8 014196 task clock 0 004 CPUs utilized 204 context switches 0 025 M sec 32 cpu migrations 0 004 M sec 0 page faults 0 0
  • 列出破折号中当前定义的函数?

    我想列出当前定义的函数dash 有什么办法可以做到这一点吗 我能想到的最接近的是type它可以用来测试一个函数是否存在 但除此之外我很困惑 附 我说的是dash在这里 不是bash or zsh 看看 exec c 似乎没有 没有 表是静态
  • 别名在 Bash 脚本中不起作用[重复]

    这个问题在这里已经有答案了 我有一个可执行文件command sh bin bash alias my command echo ok my command 我的终端是bash 当我像这样运行时 command sh 效果很好 当我像这样运
  • 确保 config.h 包含一次

    我有一个库项目 正在使用 Linux 中的 autotools 套件移植到该项目 我对自动工具很陌生 本周 我已经了解了其操作的基础知识 我有一个关于如何保留内容的问题config h免遭重新定义 我惊讶地发现生成的config h文件也没
  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • touch命令在一个目录下创建多个文件(不同名称)

    我想制作一个在 bash 中创建目录和文件结构的脚本 我尝试过这样的事情 mkdir p 1 2 touch 1 2 a b c a b c 应该是在一个命令或其他命令中创建的文件 但由于某种原因 结构是这样的 current folder

随机推荐

  • C# XML - 使用 XML Writer 进行多命名空间声明

    我正在尝试使用 C 中的 System Xml Xmlwriter 创建具有多个命名空间的 XML 文档 但在编译时收到以下错误 在同一起始元素标记中 不能将前缀 从 重新定义为 http www acme com BOF 我的完整代码如下
  • Constexpr 指针值

    我试图声明一个初始化为某个常量整数值的 constexpr 指针 但 clang 挫败了我的所有尝试 尝试1 constexpr int x reinterpret cast
  • 如何在 UILabel 中检测并使超链接/提及/主题标签可点击?

    如何在 UILabel 中检测并使其链接 提及 主题标签可点击 或者 是否有任何我可以利用的开源库 我已经看过 Fancy UILabel 它不处理多行文本 TTAttributedLabel 不处理提及 标签 在当前的 iOS 中 没有办
  • 以编程方式抑制大容量存储设备的自动播放

    我需要抑制大容量存储设备的自动播放 这需要通过在后台运行的服务 守护程序以编程方式实现 我知道这可以通过打开一个窗口并处理窗口发送的 queryCancelAutoPlay 消息的应用程序来完成 这可以在没有 GUI 的情况下完成吗 我有需
  • 如何从 UWP 访问 Net Standard 2.0 类库中的内容

    我们有一个引用 UWP 类库的 UWP 应用 UWP 类库有一个 Common 文件夹 其中包含运行时所需的文件 这些文件被标记为 复制为内容 文件被复制到 UWP bin x64 Debug Appx
  • Knockoutjs:ScrollIntoViewTrigger

    我最近遇到了一个问题 虽然我为我解决了它 但我不确定是否没有更好的解决方案 所以我很感激任何评论 问题 我想创建一个 ScrollIntoView 绑定 由于将元素滚动到视图中需要 DOM 元素 因此我编写了一个自定义绑定 然后我想在我愿意
  • 机械化和 Google App Engine

    有人成功使用过吗机械化使用 Google App Engine 应用程序 是的 尽管您需要更改 mechanize py 文件或执行大多数人所做的操作 即下载已更改且已修复的版本 不确定这是否仍然有效 因为它是 2010 年的 以下是针对谷
  • 如何在 Ansible 中为每个剧本登录单独的文件

    我希望在 Ansible 中运行的每个 playbook 有单独的日志文件 而不是 log path 中定义的单个日志文件 据我所知 没有内置的方法可以做到这一点 所以我正在寻找聪明的 黑客 更具体地说 我希望在运行剧本后以 剧本名称 日期
  • 在 SwiftUI 中使用自己的 ButtonStyle 在 tvOS 上无法选择按钮

    将标准按钮样式替换为自定义按钮样式后 该按钮在 tvOS 上不再可选 它在 iOS 上按预期工作 PlainButtonStyle 中是否有我缺少的特殊修饰符 或者这是 SwiftUI 中的一个错误 这是有效的截图 Button actio
  • 如何在 Hibernate 查询中使用准备好的语句? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 如何在 Hibernate 查询中使用准备好的语句 默认情况下 Hibernate 使用PreparedStatement 你不必担心它 不仅Criteria但 Hibernate 使
  • 无法在 HoneyComb 3.2 上安装应用程序 - 它给出 INSTALL_PARSE_FAILED_NOT_APK 错误

    谢谢阅读 一位用户最近报告说 他无法在他的 Asus Eee Pad Transformer 上安装我的应用程序 我假设它已经更新了 3 2 因此 我尝试在 3 2 模拟器上安装该应用程序 这是我的控制台输出 2011 08 04 14 0
  • 在 AngularJs 中使用 UI-Router 更改导航菜单

    我正在尝试像任何社交网站一样构建一个导航菜单 即如果我logged Out我可以看到input fields要求Username and Password但如果我是logged In然后我可以看到我的个人资料 设置等 我正在尝试做同样的事情
  • Xamarin.android-如何更快地加密/解密图像

    我希望用户从图库中选择图像 视频并在我的应用程序中保护他们的图像 为此 我对这些图像进行了加密 图像加密工作正常 我认为是这样 8MB 图像需要 1 5 至 2 秒 但视频呢 视频可能以 GB 为单位 所以需要很多时间 即使在加密 解密中
  • 如何使用 ClearCase CM API 获取元素的历史记录?

    我想使用由clearcase 提供的Rational CM API 获取受clearcase 控制的文件元素 例如pdf 文件 doc 文件等 的历史记录 我编写了以下代码来获取历史记录 但它不完整 所以请在这里帮助我 public voi
  • CFB 模式下的 TripleDES、C# 和 Crypto++ 不同

    这是我的问题 我有一个 C 遗留代码 使用 crypto v5 6 1 并且我用 C 开发了一个新代码 使用 System Security Cryptography 的 NET 3 5 我无法改变C 代码 但我需要能够解密之前加密的数据
  • 如何引发回发?

    我需要在 C 中引起回发 我该怎么做 它不能通过按钮或任何其他元素 只想在满足条件时引起回发 就像是 If so and so Postback now else Do not post back 从评论来看 您似乎正在使用 telerik
  • 从类方法内部更改全局变量

    当我尝试执行下面的代码时 第一个列表被修改 而第二个列表没有发生任何更改 有没有办法用全新的列表替换外部列表 或者调用列表方法是我可以从内部类方法中执行的唯一操作 我尝试在赋值操作之前添加 global 关键字 但它会产生语法错误 firs
  • 将 document.getElementById 分配给另一个函数

    我正在尝试在 JavaScript 中执行以下操作 var gete document getElementById 但我收到以下错误 来自 FireBug 的控制台 uncaught exception Exception Illegal
  • 只需通过 Jquery 按 Enter 键即可将焦点从一个控件移动到另一个控件

    假设我在页面中有许多 html 控件 并且所有控件都按顺序设置了制表位 因此 如果我按 Tab 键 则焦点会正确移动 但我想通过按 Enter 键而不是 Tab 键来移动焦点 所以请告诉我 当用户仅通过 javascript 或 jquer
  • 在 Bash shell 中获取并使用包含特殊字符的密码

    我在使用带有特殊字符 例如 的密码时遇到了一些麻烦bashshell 脚本 我的 shell 脚本是 read s p Password bindDNPass ldapadd H ldap localhost x w bindDNPass