grub2 脚本中的 if 语句总是计算为 true
Posted
技术标签:
【中文标题】grub2 脚本中的 if 语句总是计算为 true【英文标题】:if statements in grub2 script always evaluate to 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。我做错了什么?
谢谢, 强尼
【问题讨论】:
【参考方案1】:if [ ! "$myvar" = "" ]; then
(lines here)
else
(lines here)
fi
if [ "$myvar" = "fred" ]; then
(lines here)
else
(lines here)
fi
【讨论】:
以上是关于grub2 脚本中的 if 语句总是计算为 true的主要内容,如果未能解决你的问题,请参考以下文章
如果第一个条件为假,假设 if-and 语句总是会中断是不是安全? [复制]