1.du df free 只介绍了大方向,具体想怎么用自行搜索下指令吧。
du命令
显示每个文件和目录的磁盘使用空间~~~文件的大小
df命令
命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。
free命令
查看内存
2.basename和dirname
这里来个例子吧
3.变量为空或者变量未定义他的长度都为0
字符串变量养成一个习惯,加上一个双引号,因为部分地方不加双引号会出现错误
举例:
这里-z是字符段长度是零,-n正好相反不为零。由图可见-n判断的时候不加双引号判断出现了错误。
for循环中也会出现不一致。
双引号还有另外一个作用就是当你未定义一个变量但是后面调用了,调用的时候加上双引号就不会报语法错误了。也不知道这是优点还是缺点
4.[]和[[]]的区别
当然并不只有这点区别
[[]]要比[]强大许多,就比如说正则,[[]]可以支持正则
正则
^ 行首$ 行尾. 除了换行符以外的任意单个字符* 前导字符的零个或多个.* 所有字符[] 字符组内的任一字符[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)^[^] 非字符组内的字符开头的行[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邮箱
判断是否是首字母大写的纯英文字符串
然后[[]]和正则搭配我们来一个脚本
[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里执行。
()
最后一个命令可以不用分号,{}
最后一个命令要用分号。
()
里第一个命令和左边括号不必有空格,而{}
第一个命令和左括号之间必须有一个空格。
()
和{}
里的某个命令的重定向只影响该命令, 而括号外的重定向则影响到括号里的所有命令。
$()和$[]
整数运算
我们下期再见。