请教会linux shell脚本的=~是什么意思?
问题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系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
应该是正则表达式的字符判断
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
[[ ]]:条件判断语句
$i:i是个变量,$i代表读取变量i的值
=~:正则匹配,用来判断其左侧的参数是否符合右边的要求
^:以什么开头
^[0-9]:以数字开头
^[0-9]+:以数字开头,且数字有1到多个——加号表示1到多个
$:以什么结尾
^[0-9]+$:以1到多个数字开头,且结尾。——意即:只能有数字,不能有其他字符
&&:左边的条件满足,右边的命令才会执行。
echo 1:屏显1(在屏幕上显示,也叫打印)
所以:
[[$i=~^[0-9]+$]]&&echo1的意思是:
如果变量i的值是纯数字,就屏显1
if [[ $i =~ ^[0-9]+$ ]] && echo 1
1、^是匹配字符串开始的意思,[0-9]只要不是数字都不要
2、~ +的意思的^[0-9]的范围里匹配一次以上+ $是匹配结束符