【问题标题】:echo in a bash script changing '--md5' to '?-md5'在 bash 脚本中回显将“--md5”更改为“?-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 进行检查 - 谢谢。

标签: bash vmware grub


【解决方案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

【讨论】:

    猜你喜欢
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-02-28
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多