1

如何在 grub.cfg 文件中检查文件的 sha1sum 并将其与存储的数字进行比较?
如果相等则可以加载图像,否则应切换回黄金图像

我试过以下

myLinuxBin='(hd0,msdos2)/bzImage.bin'
myLinuxBinSha1Sum='d15e1a64c0f5dd24052f0cb38b88c9f5d4c30a6c'
if [ "$(sha1sum ${myLinuxBin})" -eq "${myLinuxBinSha1Sum}  ${myLinuxBin}" ]; then
    set default="myRunImage"
else
    set default="myGoldenImage"
fi

但我收到错误消息

error: syntax error.
error: Incorrect command.
error: syntax error.

知道错误在哪里或如何处理文件检查吗?
谢谢

4

1 回答 1

0

如果将其移至 linux/unix 论坛,这可能会更好,因为它是 BASH 脚本和 GRUB。

您的问题似乎主要是 BASH 语法脚本。

看起来从你开始"$(sha1sum ${myLinuxBin})"是你想要执行程序的地方,该程序将返回你告诉它的任何内容的 SHA1 哈希。我相信你这里的语法是错误的。

并且将生成的哈希值转储到变量中可能更容易,然后执行简单的 BASH if 语句,例如 if [ $hash_value -e $myLinuxBinSha1Sum ]

您需要正确的 BASH 语法来执行 sha1sum 可执行文件并将输出字符串转储到名为hash_value

于 2017-01-09T16:11:17.177 回答