请教会linux shell脚本的=~是什么意思?
直接看示例:
[root@localhost xly]# cat t.sh
#!/bin/bash
echo $#
echo $@
[root@localhost xly]# sh t.sh
0
[root@localhost xly]# sh t.sh a b c
3
a b c
说明:
$@表示所有参数
$#表示所有参数的个数
在计算机科学中,是指“提供用户使用界面”的软件,通常指的是命令行界面的解析器。一般来说,shell是指操作系统中,提供访问内核所提供之服务的程序。
一、shell的分类:
1、图形界面shell(Graphical User Interface shell 即 GUI shell)
例如:应用最为广泛的 Windows Explorer (微软的windows系列制作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manger (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。
2、命令行式shell(Command Line Interface shell ,即CLI shell)
例如:bash / sh / ksh / csh(Unix/linux 系统)(MS-DOS系统);
cmd.exe/ 命令提示字符(Windows NT 系统);
Windows PowerShell(支援 .NET Framework 技术的 Windows NT 系统)。
二、shell的命令描述:
1、使用用户的缺省凭证和环境执行 shell。
2、在UEFI环境下,EFI的shell环境提供了一组丰富的扩展和增强的命令,在以后的计算机中,传统的DOS界面将会被shell环境所取代,所有的.exe文件将不会在以后支持shell的环境中出现,取而代之的文件后缀是.efi。
是正则表达式的字符判断
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]的范围里匹配一次以上+ $是匹配结束符
正则匹配,用来判断其左侧的bai参数是否符合右边的要求
详细命令描述可以看下
请教会linux shell脚本的=~是什么意思?视频
相关评论: