shell判断数字大小_shell! shell! shell!

1.du  df   free  只介绍了大方向,具体想怎么用自行搜索下指令吧。

du命令

显示每个文件和目录的磁盘使用空间~~~文件的大小

039aef87472f28c5f8186fde676963b4.png

df命令

命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

3d9b5178b9ef4a2a32132f02e6509562.png

free命令

查看内存

1e22d73d82a15384d63b7fac8e5f118a.png

79781d60d86bd8772622a1b976debdde.png

2.basename和dirname

d9481d41fe7fa25ed328f1bf248c04f4.png

这里来个例子吧

8333a21c1763ab4e69a1a1d1f101d5e2.png

3.变量为空或者变量未定义他的长度都为0

字符串变量养成一个习惯,加上一个双引号,因为部分地方不加双引号会出现错误

举例:

0ce7068ce574a655401670833b97b321.png

这里-z是字符段长度是零,-n正好相反不为零。由图可见-n判断的时候不加双引号判断出现了错误。

335fead5c0522b4210876c8d0248dcd7.png

for循环中也会出现不一致。

双引号还有另外一个作用就是当你未定义一个变量但是后面调用了,调用的时候加上双引号就不会报语法错误了。也不知道这是优点还是缺点

affb8a93fde7597cf0ce24cb5b9572d3.png

4.[]和[[]]的区别

4354bb1152f44a83aee34c88258d447b.png

当然并不只有这点区别

[[]]要比[]强大许多,就比如说正则,[[]]可以支持正则

正则

^ 行首$ 行尾. 除了换行符以外的任意单个字符* 前导字符的零个或多个.* 所有字符[] 字符组内的任一字符[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)^[^] 非字符组内的字符开头的行[a-z] 小写字母[A-Z] 大写字母[a-Z] 小写和大写字母[0-9] 数字\< 单词头 单词一般以空格或特殊字符做分隔,连续的字符串被当做单词\> 单词尾? 前导字符零个或一个+ 前导字符一个或多个x{m} x出现m次x{m,} x出现m次至多次(至少m次)x{m,n} x出现m次至n次abc|def 表示abc或defa(bc|de)f 表示abcf 或 adef

应用

            判断是否是qq邮箱

9bdbff47afd3249fad4ba922ab8a2a9e.png

            判断是否是首字母大写的纯英文字符串

d3f5032dc067a0bd1d4b5499f2e3efee.png

然后[[]]和正则搭配我们来一个脚本

c34a296f5f755267c9242754131cff95.png

[root@localhost lying]# vim useradd01.sh #!/usr/bin/bash######################################useradd                            ##v1.0 by zqh 25/1/2021              ######################################read -p "you want useradd number:" usernumif [[ ! "$usernum" =~  ^[1-9][0-9]*$ ]]then        echo "不是正经数字"        exitfiread -p "you want username qianzhui:" prefixif [[ ! $prefix =~ ^[A-Z][a-z]{2,}$ ]]then        echo "请输入规范的用户名"        exitfifor i in `seq $usernum`do        if id (${prefix}${i})&>/root/lying/laji.txt        then                echo "用户${prefix}${i}已存在"        else#               useradd (${prefix}${i})                echo "创建用户${prefix}${i}"        fidone

$()和``  

命令替换   ``  基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。而 $( ) 并不见的每一种 shell 都能使用。

()和{}

()是重新开一个子shell然后执行,而{}则是在当前shell里执行。

()最后一个命令可以不用分号,{}最后一个命令要用分号。

()里第一个命令和左边括号不必有空格,而{}第一个命令和左括号之间必须有一个空格。

(){}里的某个命令的重定向只影响该命令, 而括号外的重定向则影响到括号里的所有命令。

f8f16f6334b9edac7272b3e4bade5214.png

$()和$[]

整数运算

我们下期再见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值