[Shell]IF语句比较时的一个坑,不要强制把数字变量加引号为字符串

今天一个离线shell脚本某个比较环节不生效,查了一下问题
如下:

if [[ "${code}" = "403" || ... ]] ; then
 echo "balabala..."
fi

一直不生效,就算赋值 code=403也是, 之后打印

set -x

之后发现是

+ [[ 403 = \4\0\3 || ... ]]

去掉引号之后就OK了

  • 总结,应该是bash里对于字符串中的字符都做了强转义,最终导致这个问题
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,464评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,817评论 0 10
  • 概述 首先,咱们来了解一下,什么是Shell。操作系统内核给我们提供了各种接口,同时也提供了各种用户层的库,理论上...
    keysaim阅读 1,415评论 0 0
  • 复习 软件工程:工程开发的过程 软件的输出物: 需求分析说明书(100+页) 2.概要设计说明书 3.详细设计文档...
    快来看老实人阅读 132评论 0 0
  • 女儿小时候甚是调皮可爱,学前班时,她比较不喜欢写字,为此我颇为头疼。 一天下午,我带她出去玩,回家稍作休息...
    童心不改阅读 96评论 1 1