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

来自:    更新日期:早些时候
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脚本的=~是什么意思?视频

相关评论:

相关主题精彩

版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

Copyright © 喜物网