当前位置: 首页 > news >正文

shell脚本使用==判断相等报错

在这里插入图片描述

文章目录

      • 方法 1:使用 `=` 比较符
      • 方法 2:强制使用 `bash`

这个错误的原因是你使用了 == 比较符,而 /bin/sh (或一些系统的默认 sh 解释器) 可能不支持它。对于 POSIX 兼容的 shell(如 /bin/sh),应该使用单个等号 = 来进行字符串比较。

可以通过以下两种方式修正这个问题:

  1. 使用单个等号 = 进行字符串比较。
  2. 显式地使用 /bin/bash 作为解释器,因为 bash 支持 ==

方法 1:使用 = 比较符

#!/bin/bash# 遍历 REPO_LIST 中的每个仓库路径,并执行 git checkout
for repo in "${REPO_LIST[@]}"; doecho "Updating $repo to Cert tag"# 使用 repo forall 定位到指定仓库,并切换到 Cert 标签repo forall -c 'if [ "$REPO_PATH" = "'$repo'" ]; thenecho "Checking out Cert in $REPO_PATH"git checkout Certfi'
doneecho "All specified repositories have been updated to Cert tag"

方法 2:强制使用 bash

如果你的系统上默认的 shell 是 dash 或其他不支持 == 的 shell,但你更喜欢用双等号,可以强制脚本在 bash 下运行:

#!/bin/bash# 要更新到 Cert 标签状态的仓库路径列表
REPO_LIST=(# 列表省略...
)# 遍历 REPO_LIST 中的每个仓库路径,并执行 git checkout
for repo in "${REPO_LIST[@]}"; doecho "Updating $repo to Cert tag"# 使用 repo forall 定位到指定仓库,并切换到 Cert 标签repo forall -c 'if [ "$REPO_PATH" == "'$repo'" ]; thenecho "Checking out Cert in $REPO_PATH"git checkout Certfi'
doneecho "All specified repositories have been updated to Cert tag"

总结来说,推荐的修复方法是使用 POSIX 兼容的 = 比较符来确保脚本能在更多的环境中运行。


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

相关文章:

  • EDM平台大比拼 用户体验与营销效果双重测评
  • .Net 基于IIS部署blazor webassembly或WebApi
  • 国际版多语言点赞抖音分享点赞任务平台源码
  • 美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式
  • 7.MySQL内置函数
  • 基于Hive和Hadoop的病例分析系统
  • 《程序猿之Redis缓存实战(1) · 基础知识》
  • 有问题未解决(9.28)
  • Redis设计与实现 学习笔记 第一章 引言
  • 机器学习:opencv--特征检测
  • 切换笔记本键盘的启用与禁用状态
  • Java基础(Arrays工具类)(asList()方法)(详细)
  • 鸿蒙开发(NEXT/API 12)【硬件(接入手写套件)】手写功能开发
  • 《深度学习》卷积神经网络 数据增强、保存最优模型 原理解析及实例实现
  • 【自动驾驶】对2D框的四条边同时缩进
  • es6
  • fetch 从初识到应用
  • node学习系列之简单文件上传
  • PermissionScope Swift4 兼容问题
  • Python 反序列化安全问题(二)
  • sublime配置文件
  • Travix是如何部署应用程序到Kubernetes上的
  • Vim 折腾记
  • 阿里云购买磁盘后挂载
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 我的业余项目总结
  • 优化 Vue 项目编译文件大小
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • #if 1...#endif
  • (4)logging(日志模块)
  • (初研) Sentence-embedding fine-tune notebook
  • (待修改)PyG安装步骤
  • (第61天)多租户架构(CDB/PDB)
  • (二)PySpark3:SparkSQL编程
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (三)Honghu Cloud云架构一定时调度平台
  • (三)终结任务
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十六)一篇文章学会Java的常用API
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .apk 成为历史!
  • .NET BackgroundWorker
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .NET4.0并行计算技术基础(1)
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .NET技术成长路线架构图
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具