【问题标题】:string comparison with output in Bash字符串与 Bash 中的输出比较
【发布时间】:2018-05-16 23:09:28
【问题描述】:

我有一个运行良好的简单脚本(并打印 hello

variable=false
if [ "$variable" = "false" ]; then
    echo hello
fi

但是,这不起作用(并且不会打印hello

variable=$(source script.sh \
           | awk -F":" '/maintenanceMode\>/ { print $2i }' \
           | sed 's/,//g'
          )
echo $variable     # prints `false`, as expected
if [ "$variable" = "false" ]; then
    echo hello
fi

我错过了什么?

【问题讨论】:

  • 你确定第二个例子中variable的值是false吗?你能在考试前回声吗?
  • @BenjaminW。是的,三重检查
  • script.sh 中有什么内容?您是否有理由使用它而不是仅仅执行它?
  • 并且通过“三重检查”,你在分配后做了echo "$variable",而不只是检查你替换的命令的输出吗?
  • 如果你这样做echo "'$variable'" - 可能会有空格。

标签: bash string-comparison


【解决方案1】:

从变量中去除空格。

$variable=`echo $variable | xargs`

【讨论】:

  • 谢谢,我添加了“| xargs”,它解决了我的问题,因为我有一个空格
猜你喜欢
  • 2019-08-20
  • 2015-08-30
  • 2012-03-02
  • 1970-01-01
  • 2019-05-08
  • 1970-01-01
  • 2017-04-14
  • 2021-11-10
  • 2015-11-09
相关资源
最近更新 更多