检查文件是否存在损坏并在必要时回退到金色图像

问题描述:

如何检查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. 

任何想法错误在哪里或者我如何处理文件检查?
谢谢

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

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

它看起来像从你的"$(sha1sum ${myLinuxBin})"开始,你想要执行的程序将返回你所说的任何SHA1哈希值。我相信你的语法是错误的。

而且它可能会更容易得到的散列值转储到一个变量,然后做一个简单的bash if语句,如if [ $hash_value -e $myLinuxBinSha1Sum ]

您需要正确的BASH语法执行SHA1SUM可执行文件和倾销输出字符串变成一个名为hash_value

+0

的bash变量谢谢。我将问题转到[链接](http://askubuntu.com/questions/870096/grub-check-file-for-corruption-and-fallback-to-golden-image-if-necessary) – Max