grub2如何增加变量

时间:2017-02-15 08:56:23

标签: bash shell bootloader grub grub2

grub2 shell旨在成为像shell这样的简约bash。

但是如何在grub2中增加变量?

在bash我会这样做:

var=$((var+1))

((var=var+1))

在grub2中,我在这些调用中遇到语法错误。我怎样才能在grub2 shell中实现这个目标?

2 个答案:

答案 0 :(得分:1)

Grub2没有内置算术支持。如果需要,您需要添加Lua支持,有关详细信息,请参阅this answer

答案 1 :(得分:0)

基于this answer (已由其他答案链接),以下内容似乎可以与GRUB的regexp命令一起使用(允许从0-5的任意数字递增,添加更多的根据需要配对):

num=0
incr="" ; for x in 0,1 1,2 2,3 3,4 4,5 5,6 ; do 
    regexp --set=1:incr "${num},([0-9]+)" "${x}"
    if [ "$incr" != "" ] ; then 
        echo "$num incremented to $incr" 
        num=$incr
        break 
    fi
done

减量的工作原理类似(只需翻转两个正则表达式部分):

num=6
decr="" ; for x in 0,1 1,2 2,3 3,4 4,5 5,6 ; do 
    regexp --set=1:decr "([0-9]+),${num}" "${x}"
    if [ "$decr" != "" ] ; then 
        echo "$num decremented to $decr" 
        num=$decr
        break 
    fi
done