linux shell 数字,Linux怎么学

其实linux shell 数字的问题并不复杂,但是又很多的朋友都不太了解Linux怎么学,因此呢,今天小编就来为大家分享linux shell 数字的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

linux 如何判断变量值是否是数字

摘自《实用Linux Shell编程》,比较新上市的书,4.15节

使用expr进行计算的时候,变量必须是整数,不能是字符串,也不能含小数,否则会出错(命令的退出状态为非0):

$ i=hello

$ expr$i+ 58

expr: non-integer argument

$ echo$?

2

利用命令expr的这一特点,可以判断某个变量是不是整数。让其参与整数运算,比如,与1相加,如果expr命令的退出状态是0(成功),表明该变量是整数,否则不是整数。见下列:

$ k=5

$ expr 1+$k>/dev/null 2>&1#这里只关心命令的退出状态,不关心值是多少,

#所以将标准输出与标准错误都重定向到"黑洞"

$ echo$?

0#退出状态为0,说明k是整数

$ m=5.8

$ expr 1+$m>/dev/null 2>&1

$ echo$?

2#退出状态非0,说明m不是整数

Linux shell 怎样判断输入是否是数字啊(包含浮点数)

楼主要是正则还好的话,应该试着用正则表达式描述吧。

数字的定义应该是:

一个可选的正负号,跟一个以上的数字,再是可选的小数点再加一串可选的一串数字(包括:3,-5, 1.23,-1.)

可选的正负号,跟一个点再跟一个以上的数字(.2,-.3。可能看着比较奇怪,但传统上(C语言里)认为是数字。如果你的要求不一样,可以更改定义)

你可以试试把这个描述翻译成正则表达式,这是写脚本的基本功。另外你还可以试试让你的程序识别 1.23E-5这样的浮点数。

判断的时候,比如可以用 sed把匹配这个表达式的部分删掉。如果剩下的是空串,则说明输入就是数字。否则不是。

请教会linux shell脚本的=~是什么意思

是正则表达式的字符判断

if [[$i=~ ^[0-9]+$ ]]&& echo 1

1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要。

2、~+的意思的^[0-9]的范围里匹配一次以上+$是匹配结束符。

touch-t"201109021200.00" tempfile

使用引号内的时间戳在当前目录建立一个叫tempfile的文件

find-name"*VIRTUALID*"-newer tempfile-exec cp{}/home/wbft/luo \;

扩展资料

Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。

Shell本身是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。

它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。

阅读剩余
THE END