在 bash 脚本中回显将“--md5”更改为“?-md5”
Posted
技术标签:
【中文标题】在 bash 脚本中回显将“--md5”更改为“?-md5”【英文标题】:echo in a bash script changing '--md5' to '?-md5' 【发布时间】:2010-12-05 23:17:12 【问题描述】:我正在编写一个 VMWare ESX 自动构建脚本,但我遇到了最后一道障碍,可能是因为我真的不擅长编写脚本。
我需要保护 Grub,所以在我的脚本中我有一个类似的说法;
echo "password --md5 password-converted-to-md5" >> /boot/grub/grub.conf
不幸的是,这会将以下内容放入此文件中;
密码 ?-md5 密码转换为 md5我知道这对你们中的一些人来说很简单,但我已经在谷歌上搜索了几个小时,我感到很沮丧。
非常感谢您。
【问题讨论】:
你确定“--md5”中的两个破折号都是简单的ASCII减号字符(U+002D)吗?您可能不小心使用了 U+2010 HYPEN "-"、U+2011 NON-BREAKING HYPEN "-" 或任何其他类似字符。尝试删除两个破折号并重新输入。 (注意:在使用简单文本编辑器之外的任何东西编写脚本时,这种错误相对常见,MS Word 和类似工具因在自然语言文本中进行那种有意义的替换而臭名昭著,但乱码) 我使用的是 MS 记事本,但现在将使用 nano/vi 进行检查 - 谢谢。 【参考方案1】:确保您有简单的 ascii 破折号,而不是其他字符,如不间断连字符、数学减号、短划线、短划线等。最好是重新输入您的行,这有望解决您的问题问题
【讨论】:
你是对的,谢谢 - 我使用 MS 记事本编写脚本,由于某种原因,第一个连字符在记事本中显示良好,但在 nano 中显示为重音“u” - 可爱的旧 MS 嗯!再次感谢伙计们。【参考方案2】:我会使用简单的报价,看看是否有帮助:
echo 'password --md5 password-converted-to-md5' >> /boot/grub/grub.conf
或使用变量:
echo $passwordVar' --md5 password-converted-to-md5' >> /boot/grub/grub.conf
【讨论】:
以上是关于在 bash 脚本中回显将“--md5”更改为“?-md5”的主要内容,如果未能解决你的问题,请参考以下文章
无法在终端“bash:/etc/odbcinst.ini:权限被拒绝”中回显[重复]