【shell中判断是否是整数】

2023-11-08

方法一:使用expr,看该数字是否可以进行加运算

[root@manager day4]# cat ifnum.sh 
#!/bin/bash
#*************************************************************
#Author: pyy
#Date:  2020-06-15
#FileName:      ifnum.sh
#*************************************************************
#判断用户输入的是否是数字
read -p "请输入:" num
#方法1if expr $num + 1 &>/dev/null
then
	echo "是数字!"
else
	echo "不是数字!"
fi

方法二:判断该数字是否与(数字)0进行比较

if [ $num -gt 0 ] 2>/dev/null
then
	echo "是数字!"
else
	echo "不是数字!"
fi

方法三:使用正则匹配的方式:以数字开头,以数字结尾

if [[ $num =~ ^[0-9]+$ ]]
then
	echo "是数字!"
else
	echo "不是数字!"
fi

方法四:使用sed的方式进行替换:将数字全替换成空,若替换之后全为数字则字符串为空,否则不为空

#方法4:打印变量通过sed替换,若执行替换后的变量为空,则为数字
if [ $(echo $num | sed 's/[0-9]*/ /g')=" " ] &>/dev/null
then
	echo "是数字!"
else
	echo "不是数字!"
fi

方法五:使用case判断

case $num in
	[1-9][0-9]*)
		echo "是数字!"
		;;
	*)
		echo "不是数字!"
		;;
		
esac

方法六:用变量的子串替换
思路:如果num的长度不为0,并且把num中的非数字部分删除,然后看结果是不是等于num本身,如果两者成立,那么就是数字,反之亦然。

read -p "plz input a number: " n
if [ -n $n -a $n = ${n//[^0-9]/} ]
then
		echo yes
else
		echo no
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【shell中判断是否是整数】 的相关文章

  • 为什么我不能在 while 循环内评估?

    我想在循环中创建 bash 别名 其中循环从命令读取行 为了逐行读取输出 我相信我需要将输出通过管道传输到read 然而 当我这样做时 别名不存在 如果我将以下内容包含在我的 bashrc for x in a1 a2 do eval al
  • 在 UNIX 时间戳 Shell/Bash 中将日期与时区转换

    我需要将日期从格式为 yyyy mm dd hh mm ss TZ 的字符串转换为 UNIX 时间 TZ 时区 到目前为止我所做的是将没有时区的 yyyy mm dd hh mm ss 格式的日期转换为时间戳 dateYMD 2019 2
  • 使用 Shell 脚本提供密码

    我已将客户端和服务器设置为无密码登录 就像无密码登录一样 通过将服务器的 RSA 密钥复制到所有客户端的 root ssh id rsa pub 来实现 但这是我手动完成的 我喜欢使用 shell 脚本自动执行此过程 并通过脚本向计算机提供
  • 如何获取与文件类型关联的图标路径和索引?

    给定一个文件类型 例如 txt 我怎样才能得到 path index 文件类型的关联图标路径和索引 例如 我想转换 txt into Path SystemRoot system32 imageres dll Index 102 有了这些信
  • 如何使用 cron 作业运行 python 文件

    您好 我创建了一个 python 文件 例如file example py 该文件将输出 sensex 值 假设该文件在linux系统上的路径为 Desktop downloads file example py 我通常会运行该文件pyth
  • Linux shell 命令逐块读取/打印文件

    是否有一个标准的 Linux 命令可以用来逐块读取文件 例如 我有一个大小为 6kB 的文件 我想读取 打印第一个 1kB 然后是第二个 1kB 看来猫 头 尾在这种情况下不起作用 非常感谢 你可以这样做read n在循环中 while r
  • 如何在 Bash 中为数组赋值?

    我正在尝试从文本文件中读取值列表 你好 txt 并将它们存储在一个数组中 counter 0 cat hello txt while read line do Unix Array counter line let counter coun
  • 使用 Jenkins 运行 ios-sim

    我正在尝试使用以下命令从命令行启动我的应用程序ios sim https github com downloads pegli ios sim ios sim xcode4 3 tar gz但这就是我得到的 Started by user
  • shell脚本“x$VARIABLE”中x的用途[重复]

    这个问题在这里已经有答案了 我正在查看一些 shell 脚本 comarison shcu 中 x 的用途是什么 if x USER x RUN AS USER then su RUN AS USER c CATALINA HOME bin
  • 是否有可能在linux中找到包含特定文本的文件?

    考虑这种情况 我在文件夹 Example 下有很多文件 如果我需要找到一个包含特定短语 如 Class Example 的文件 我该如何使用 Linux shell 来做到这一点 linux中有类似 定位 的函数可以做到这一点吗 Thank
  • 如何从 Linux 的 shell 中删除所有以 ._ 开头的文件?

    确实如标题所示 我已将许多文件从 Mac 复制到 Raspberry Pi 这导致了许多以前缀开头的多余文件 我想删除以以下开头的文件夹中的每个文件 我该怎么做 尝试类似的方法 cd path to directory rm rf 或者 如
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 为什么减法返回 - 符号

    我对简单的减法有疑问 但我不明白出了什么问题 我的代码 start date s N cut b1 13 Treatment end date s N cut b1 13 delta expr end start echo delta de
  • 如何将命令作为参数传递给 ssh [重复]

    这个问题在这里已经有答案了 我的需要是让这个命令起作用 sshpass p XXXX ssh oStrictHostKeyChecking no email protected cdn cgi l email protection sudo
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • ReferenceError:MongoDB shell 中未定义 require

    我尝试通过 Windows 命令 Windows 8 1 从 Mongo 客户端连接 MongoDB 当我使用require 在 javascript 中 我遇到如下错误 有人有同样的问题吗 我有错过任何一个吗require有关的npm安装
  • 从 PL/SQL 调用 shell 脚本,但 shell 以 grid 用户而非 oracle 身份执行

    我正在尝试使用 Runtime getRuntime exec 从 Oracle 数据库内部执行 shell 脚本 在 Red Hat 5 5 上运行的 Oracle 11 2 0 4 EE CREATE OR REPLACE proced

随机推荐

  • 八邻域断点检测

    八邻域断点检测 本文的理论思想主要来源大家可以参照 迈克老狼2012 OpenCV学习 13 细化算法 1 本文是我自己尝试着将八邻域的细化思想 运用到断点检测上 个人觉得其实仅仅是八邻域应用的一小方面大家可以尝试着往其他方面应用 其实相对
  • Linux SPI 总线 和设备驱动架构之三:SPI控制器驱动

    通过第一篇文章 我们已经知道 整个SPI驱动架构可以分为协议驱动 通用接口层和控制器驱动三大部分 其中 控制器驱动负责最底层的数据收发工作 为了完成数据收发工作 控制器驱动需要完成以下这些功能 1 申请必要的硬件资源 例如中断 DMA通道
  • Photoshop提示暂存盘已满怎么办?ps暂存盘已满如何解决?

    打开ps软件提示暂存盘已满是什么意思 如何解决Photoshop提示暂存盘已满 本文给大家带来了解决办法 一起来看看吧 如果遇到 暂存盘已满 错误 通常意味着用作暂存盘的硬盘 或驱动器 用尽了执行任务所需的存储空间 解决方案 方法一 释放更
  • spring中的那一堆Configuration

    EnableAutoConfiguration 开启Spring Application Context自动配置 系统会根据你引入的jar包情况 自动配置一些需要的bean 参考spring boot autoconfigure jar 下
  • python典型案例:打印输出九九乘法表

    python典型案例 打印输出九九乘法表 使用for循环语句打印输出代码如下 for x in range 1 10 外循环控制行数 for y in range 1 x 1 内循环控制列 print x y x y end end表示 为
  • Styled-component 入门使用(一)

    Styled component 入门使用 一 styled components 优点 自动引入关键 styled components可以跟踪哪些组件在页面上呈现 并注入其样式 可以实现加载所需的最小代码 不会产生类名冲突 styled
  • 反向代理服务器:nginx

    1 什么是nginx Nginx engine x 是一个高性能的 HTTP 和 反向代理web服务器 其特点是占有内存少 并发能力强 事实上nginx的并发能力在同类型的网页服务器中表现较好 能够支持高达 50 000 个 并发连接数 的
  • LED灯条亮度色温调节

    一般LED灯条为12V或者24V供电 恒压驱动 由于LED灯条中已经内嵌了限流电阻 因此不需要使用复杂的恒流措施 对LED灯条进行色温和亮度的调节 可以通过PWM来开关MOS管 正白4000 4500K或者暖白3000 3500K 1 恒流
  • Linux常用命令(帮助命令、用户管理命令和压缩解压命令)

    详细目录 帮助命令 man whatis apropos help 用户管理命令 useradd passwd who w 压缩解压命令 gzip gunzip tar zip unzip bzip2 bunzip2 帮助命令 man 功能
  • 全球与中国移动健康传感器市场未来发展趋势及十四五投资战略规划研究报告2021-2027年版

    2020年 全球移动健康传感器市场规模达到了 亿元 预计2027年将达到 亿元 年复合增长率 CAGR 为 本报告研究全球与中国市场移动健康传感器的产能 产量 销量 销售额 价格及未来趋势 重点分析全球与中国市场的主要厂商产品特点 产品规格
  • 为什么要重写hashCode和equals方法【深入分析版】

    在回答这个问题前 我们先来看看Object类中的这两个方法 public native int hashCode public boolean equals Object obj return this obj 其中hashCode调用的是
  • 界面设计软件都有哪些?推荐这7款

    本文总结了7种 知名 软件界面设计工具 建议您尝试各种选择 以找到最适合您的UI设计工具 对于UI设计师来说 应用程序的界面设计和制作是最常见的 面对设计师的需求 市场上出现了各种各样的软件界面设计工具 百花齐放的情况不禁让设计师们大吃一惊
  • 异常eclipse Hadoop Failed to set permissions of path的解决

    eclipse Hadoop Failed to set permissions of path window下在eclipse中执行hadoop程序时报错 如下 原因文末有写 来自网友 所有的解决方案都是修改FileUitl文件 然后重新
  • 串口 同步和异步 理解

    串口 同步和异步 理解 https blog csdn net cs74184235 article details 48438727 本文主要三大块 一 串口同步和异步在底层通信上的区别 这部分点到为止 不是主要探讨内容 有个基本理解即可
  • 信捷plc,9伺服通用程序架构

    信捷plc 9伺服通用程序架构 程序已经升级 程序高度模块化 可轻易拓展十几二十多个轴 plc是目前性价比最高的方案 60个点10轴高速脉冲输出 走s形 正弦曲线加减速 程序采用C语言 梯形图架构 玩转信捷系统 可运用于三菱 西门子 欧姆龙
  • 小游戏 《唐僧大战白骨精》

    小游戏 唐僧大战白骨精 有点小无语的小游戏 当时做的还挺认真的 rint 欢迎光临 xxx 游戏 n 请选择你的身份 n 1 唐僧 n 2 白骨精 n sf input 请选择 1 2 if sf 1 print 你已经选择了1 你将以 g
  • pandas写入字典,或者pandas以各种格式输出数据

    1 将字典列表写入到pandas import pandas as pd rows buyer percent 23 2 tier city 1 buyer percent 18 54 tier city 2 df pd DataFrame
  • Python中利用xpath解析HTML的方法

    本文主要介绍了Python中利用xpath解析HTML的方法 利用其lxml html的xpath对html进行分析 获取抓取信息 具有一定的参考价值 感兴趣的小伙伴们可以参考一下 在进行网页抓取的时候 分析定位html节点是获取抓取信息的
  • SpringBoot整合LogBack

    本文演示SpringBoot整合LogBack 一 项目搭建 新建一个SpringBoot项目 引入依赖
  • 【shell中判断是否是整数】

    方法一 使用expr 看该数字是否可以进行加运算 root manager day4 cat ifnum sh bin bash Author pyy Date 2020 06 15 FileName ifnum sh 判断用户输入的是否是