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

语句如下: [[ $i =~ ^[0-9]+$ ]] && echo 1
问题1: =~是什么意思?
问题2: 双括号 [[ ]] 和 单括号[ ] 有什么区别?
问题3: 后面的 +$ 是什么意思?
大神请点拨一下!

正则表达式的字符判断

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-28

应该是正则表达式的字符判断

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是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。

Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

参考资料来源:百度百科-Linux Shell

本回答被网友采纳
第2个回答  2021-02-23

[[ ]]:条件判断语句

$i:i是个变量,$i代表读取变量i的值

=~:正则匹配,用来判断其左侧的参数是否符合右边的要求

^:以什么开头

^[0-9]:以数字开头

^[0-9]+:以数字开头,且数字有1到多个——加号表示1到多个

$:以什么结尾

^[0-9]+$:以1到多个数字开头,且结尾。——意即:只能有数字,不能有其他字符

&&:左边的条件满足,右边的命令才会执行。

echo 1:屏显1(在屏幕上显示,也叫打印)

所以:

[[$i=~^[0-9]+$]]&&echo1的意思是:

如果变量i的值是纯数字,就屏显1

第3个回答  推荐于2017-09-11
应该是正则表达式的字符判断
if [[ $i =~ ^[0-9]+$ ]] && echo 1

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

2、~ +的意思的^[0-9]的范围里匹配一次以上+ $是匹配结束符本回答被提问者采纳
第4个回答  2020-07-24

正则匹配,用来判断其左侧的bai参数是否符合右边的要求

详细命令描述可以看下

相似回答