`
wx1569063608
  • 浏览: 22682 次
文章分类
社区版块
存档分类
最新评论

shell中关于数字变量比较报错的问题

 
阅读更多

shell 中使用ssh -t hostIP cat filename | grep keywork | awk '{print $2}'方式获取远程文件中配置的值,并拿来进行大小比较或数学运算时,会出现错误。

报错详情:

    通过 test/[] 判断两个数字变量的大小:

        if [ ${seqno} -eq ${seqno2} ];

    报错:

         : integer expression expected

 

    通过 bc 判断两个数字变量的大小:

        result=$(echo "${seqno}==${seqno2}" | bc)

    报错:

         (standard_in) 1: illegal character: ^M

 

原因:

    通过ssh -t 执行返回的结果其换行符为"\r\n"

    shell 中test/[]/bc均无法进行处理,故而报错。

 

解决办法:

    删除字符串中的\r即可

    ssh -t hostIP cat filename | grep keywork | awk '{print $2}' | tr -d $'\r'

    or

    ssh -t hostIP cat filename | grep keywork | awk '{print $2}' | sed 's/\r//g'

转载于:https://my.oschina.net/u/2328235/blog/1082857

分享到:
评论

相关推荐

    Shell脚本中判断变量为数字的3种方法

    ### Shell脚本中判断变量为数字的3种方法 在Shell脚本开发中,经常会遇到需要判断一个变量是否为数字的情况。这样的需求通常出现在输入验证、数据处理等场景中。本文将详细介绍三种在Shell脚本中判断变量是否为数字...

    6 shell变量1

    这些是Shell脚本中关于变量的基本操作和注意事项,熟练掌握这些知识对于编写有效的Shell脚本至关重要。理解并运用这些规则,能帮助我们在编写自动化任务、管理系统或者处理数据时更加得心应手。

    工作中收集的shell脚本

    2. **变量与参数**: 在shell脚本中,可以定义并操作各种类型的变量,包括字符串、数字和数组。`$0`代表脚本名,`$1`到`$9`表示传递给脚本的前九个参数。通过`$*`或`$@`可以获取所有参数。 3. **流程控制**: `if`...

    shell资料

    2. **变量与赋值**:在Shell中,我们可以定义变量并赋值,例如`name="John"`。变量名不区分大小写,且无需声明类型。 3. **输入输出重定向**:`>`用于覆盖输出,`>>`用于追加输出,`用于输入重定向。例如,`echo ...

    Linux_unix_shell

    9. **变量**:在Shell中,可以定义和使用变量来存储值。例如,`MY_NAME="John"`,然后在命令中使用`echo $MY_NAME`显示值。 10. **条件测试**:`if`语句允许基于条件执行不同的命令。例如,`if [ -f "myfile" ]; ...

    比较两个字符串是否相等的shell代码

    而如果没有这个x,表达式就会报错:[: =: unary operator expected 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. 整数比较 -eq 等于,如:if [ “$a” -eq “$b” ] -ne 不等于,如:if [ “$a

    Shell中函数返回值超出问题

    本文将深入探讨这个“Shell中函数返回值超出问题”,以及如何理解和避免它。 1. **Shell函数的基本结构** Shell函数的定义通常包括`function`关键字(可选)和函数名,后面跟着花括号 `{}` 包裹的代码块。例如: ...

    Linux高级bash编程

    使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个...

    Shellsedawk学习参考资料

    - `-u`:未定义的变量引用会报错。 - `-v`:显示命令执行过程中的详细信息。 #### 三、Shell环境配置 - **环境变量**:Shell提供了一系列预定义的环境变量,用于控制Shell的行为或提供系统信息。 - `PATH`:...

    python接口测试-分节版

    * 验证:进入 python shell, 输入 import 包名,不报错表示安装成功 基本语法 1. 缩进 2. 条件语句(if、elif、else) 3. 函数定义(def) 4. 变量赋值(多重赋值、多元赋值) 5. 注释(单行注释、多行注释) ...

    护网面试题总结+安全工程师笔试问题

    以上是网络安全工程师面试中可能遇到的问题,涵盖从基础概念到高级技术的多个方面,体现了网络安全工程师需要掌握的广泛知识和技能。对于准备网络安全相关的面试或护网行动的人员,理解并熟练掌握这些知识点至关重要...

    Scripts

    1. **变量**:在Shell脚本中,变量用于存储数据,如字符串、数字或路径。声明变量时不需要指定类型,直接使用`变量名=值`即可。 2. **命令行参数**:脚本可以通过命令行接收参数,这些参数在脚本内部通过`$1`, `$2`...

    shellProgrammibg_programmingConstructs

    1. **变量**:在Shell脚本中,变量用于存储数据,可以是字符串、数字或其他类型。声明变量时无需指定类型,直接赋值即可,如`NAME="John"`。注意,变量名区分大小写。 2. **命令替换**:通过反引号(`)或$(),我们...

    护网面试题总结+DD安全工程师笔试问题

    "护网面试题总结+DD安全工程师笔试问题" 这份资源概括了护网面试题的总结和DD安全工程师笔试问题,涵盖了多个方面的IT知识点。以下是对每个问题的详细解释和知识点总结: 1. JNI 函数在 Java 中函数名为 ...

    鱼c小甲鱼零基础学python全套课后题.pdf

    在IDLE 中,`print()` 会将内容显示在shell 窗口中。 【Python 中表示乘法的符号是什么?】 在Python 中,表示乘法的符号是 `*`。 【为什么 >>>print('I love fishc.com ' * 5) 可以正常执行,但 >>>print('I ...

    从SQL注入到服务器沦陷全过程剖析.pdf

    SQL注入式攻击的原理在于程序未能对用户提交的变量进行有效的过滤,使得恶意用户可以构造并插入一段数据库查询代码,根据程序的返回结果,非法获取数据库中的某些数据。这种攻击可以发生在任何使用SQL数据库的动态...

    小甲鱼Python课后题(鱼C论坛)[全套55讲]

    它可以打印变量的值、字符串、数字或者其他数据类型的组合,是 Python 编程中最基础的输出功能。 【Python 中表示乘法的符号是什么?】 在 Python 中,乘法运算符是 `*`。例如,`2 * 3` 表示 2 乘以 3,结果为 6。...

    文件移动到相同的目录脚本

    本文将详细介绍一个用于在Linux环境下批量创建目录并将指定格式的文件按照一定规则移动到相应目录中的Shell脚本。该脚本主要针对文件名格式为“数字_数字.jpg”的图片文件进行处理,根据文件名中的第一个数字创建...

    SQL注入中绕过 单引号 限制继续注入

    对于数字类型的变量只允许输入数字,对于字符串类型的变量则需要检查是否包含非法字符,如单引号、分号等。这需要程序开发者在设计数据库交互程序时充分考虑到安全性,对所有的输入进行严格的验证和过滤,以防止SQL...

Global site tag (gtag.js) - Google Analytics