【问题标题】:if statements in grub2 script always evaluate to truegrub2 脚本中的 if 语句总是计算为 true
【发布时间】:2013-11-23 01:26:44
【问题描述】:

我正在尝试编写一个 grub2 引导加载程序脚本,但 if 语句总是评估为 true:

if [ -s blabla ] ; then set zzz0="1" ; fi
if [ ! -s blabla ] ; then set zzz1="1" ; fi

set TEST_VAR=foo

if [ "x${TEST_VAR}" = "xfoo" ] ; then set zzz2="1" ; fi
if [ "x${TEST_VAR}" = "xbar" ] ; then set zzz3="1" ; fi

if [ $TEST_VAR = foo ] ; then set zzz4="1" ; fi
if [ $TEST_VAR = bar ] ; then set zzz5="1" ; fi

所以,运行此脚本后,我看到所有 zzz(zzz0、zzz1、zzz2、zzz3、zzz4、zzz5)变量都设置为 1。我做错了什么?

谢谢, 强尼

【问题讨论】:

    标签: if-statement bootloader grub


    【解决方案1】:
    if [ ! "${myvar}" = "" ]; then
       (lines here)
    else
       (lines here)
    fi
    
    if [ "${myvar}" = "fred" ]; then
       (lines here)
    else
       (lines here)
    fi
    

    【讨论】:

      猜你喜欢
      • 2010-12-15
      • 2012-10-25
      • 2016-01-04
      • 2015-12-16
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多