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系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。