shell 如何判断用户从键盘输入的变量是否为数字

在bash shell当中其实是没有直接的命令去判断变量是否为一个纯数字的,那么我们就是用间接的方法:

问题描述:

read -t 30 -p "Please a number: " NUM

使用read命令接受用户从键盘输入一个变量,保存在变量NUM当中,有时候用户瞎输入一通,或者不输入,这对脚本的执行会有影响,顾提前判断一下,较好也是必要的,那么怎么判断呢?

方法一:

将NUM变量做进一步处理:

STRING=`echo ${NUM}|sed ‘sS^.*[0-9]$SS‘` 将${NUM}交给sed命令处理一下,以任意数字开头任意数字结尾的替换成空,再针对替换后的结果做处理。即

${STRING} 为空则${NUM}为纯数字,否则不是纯数字...

实例演示:

#!/bin/bash

read -t 10 -p "Please input a number: " NUM

STRING=`echo ${NUM} |sed ‘sS^[0-9].*$SS‘ `

[[ -z ${STRING} ]] && echo true || echo false

执行如下:

方法二:也是推荐的一种

将${NUM}匹配成数字模式 即=~^[0-9]+$

实例演示:

#!/bin/bash

read -t 10 -p "Please input a number: " NUM

[[ ${NUM} =~ ^[0-9]+$ ]] && echo true || echo false

执行结果:

时间: 2024-12-17 07:51:39

shell 如何判断用户从键盘输入的变量是否为数字的相关文章

将用户在键盘输入的字符串加密,然后输出密文

package javaapplication28; import java.util.Scanner; /** * * @author qingzhu */public class JavaApplication28 /*** @param args the command line arguments*/ public static void main(String[] args) { Scanner reader=new Scanner(System.in); String s=reade

【shell】Linux shell 之 判断用户输入的变量是否为数字

本文内容:判断用户输入的参数是否为数字 在shell中如何进行计算? 方式一 [[email protected] scripts]# echo $((1+2)) 3 方式二 [[email protected] scripts]# expr 2 + 3 5 [[email protected] scripts]# 注意:使用方式二的时候,要求必须要有间隔.如果使用的是乘法,号必须进行转义写为 \ [[email protected] scripts]# expr 2 * 3 expr: 语法错

Linux shell脚本 判断用户输入的文件类型

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 编写一个脚本,从键盘输入一个文件,判断它是否存在,如果存在就判断它是什么类型的文件:并用对应的颜色输出 脚本如下: #!/bin/bash #function:test file type

char键盘输入及变量名的用法

char变量名的用法: package cn.bdqn.t22; public class Demo03 { public static void main(String[] args) { char zifu='A'; // a 97 A 65 System.out.println(zifu); //a System.out.println(zifu+1); // System.out.println(""+zifu+1); //a1 System.out.println(zifu+

学习笔记7——使用Scanner获取键盘输入

使用Scanner类可以很方面地获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流.字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构造器可接受文件.输入流.字符串作为数据源,用于从文件.输入流.字符串中解析数据. Scanner主要提供了两个方法来扫描输入: ◆hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int.Long等代表基本数据类型的字符串.如果需要判断是否包含下一个字符串,则可以省略Xxx. ◆nex

使用Scanner获取键盘输入

使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流 .字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同的构造器可接受文件.输入流.字符串作为数据,用于从文件.输入流.字符串中解析数据. Scanner主要提供了两个方法来扫描输入: (1)   hasNextXxx():是否还有下一个输入项,其中Xxx可以是Int.Long等代表基本数据类型的字符串.如果需要判断是否包含下一个字符串,可以省略Xxx.

Shell编程—处理用户输入

1命令行参数 1.1读取参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数.这也包括shell所执行的脚本名称.位置参数变量是标准的数字:$0是程序名,$1是第一个参数,$2是第二个参数,依次类推,直到第九个参数$9. 例子:计算阶乘 $ vim test1.sh #!/bin/bash # using one command line parameter factorial=1 for (( number = 1;

4.Shell 判断用户的参数

1.Shell 判断用户的参数 系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错:反之则自动创建. Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值. 条件测试语法:的执行格式如图4-16所示.切记,条件表达式两边均应有一个空格 按照测试对象来划分,条件测试语句可以分为4种: 文件测试语句: 逻辑测试语句: 整数值比较语句: 字符串比较语句. 文件测试即使用指定条件来判断文件是否存在或权

python 用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数, 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数

#用户在键盘上输入一个自然数n,然后在区间[1, 5n]上随机生成n个不重复的自然数,输出这些自然数,# 然后继续编写代码对这些自然数进行处理,只保留所有偶数,并输出这些偶数import randomn=int(input("请输入整数"))shu=set()i=0while True: num=random.choice(range(1,5*n+1))#生成随机数 shu.add(num) if len(shu)==n: breakprint("n个不重复的随机数是:&qu