1.
shell执行有4种方式,除了众所周知的还有另外一种:
sh < test.sh 或者 cat test.sh |sh(bash)
linux下变量区分大小写
变量=赋值等号两边都不能有空格。
2.
日期命令
[root@xuegod13 ~]# date +%F
2022-01-24
[root@xuegod13 ~]# date +%Y-%m
2022-01
[root@xuegod13 ~]# date +%Y-%m-%d
2022-01-24
设定时间:
date -s 20180523 #设置成 20120523,这样会把具体时间设置成空 00:00:00
date -s 01:01:01 #设置具体时间,不会对日期做更改
date -s "2018-05-23 01:01:01" #这样可以设置全部时间
3.
双引号之间可以引用反引号执行命令
4.
$$:当前程序的进程ID
$!:运行的上一个后台进程的PID
!$:上一个命令的最后一个参数
5.
数学运算
expr 2 \* 3 计算2乘以3,要加反斜杠
6.
字符串
[root@xuegod13 ~]# expr length "ni hao"
6
[root@xuegod13 ~]# expr substr "ni hao" 2 4
i ha
7.
运算符还可以使用$(()),这样在双括号中所有变量可以不加$符号前缀
双括号结构扩展了for while,if条件测试运算。
支持多个表达式运算,各个表达式之间用逗号分开
8.
命令的嵌套使用,使用$( $( ))
[root@xuegod63 ~]# find /root/ -name *.txt
[root@xuegod63 ~]# VAR6=$(tar zcvf root.tar.gz $(find /root/ -name *.txt))
tar: 从成员名中删除开头的“
/”
[root@xuegod63 ~]# echo $VAR6
#查看值, VAR6 中存储着 tar 的标准输出
/root/.cache/tracker/db-version.txt /root/.cache/tracker/db-locale.txt
/root/.cache/tracker/parser-sha1.txt /root/.cache/tracker/locale-for-miner-user
guides.txt /root/.cache/tracker/locale-for-miner-apps.txt /root/.cache/tracker/last
crawl.txt
9.
环境变量
在 bash shell 中,变量分为两类:全局变量和局部变量
全局变量:对于 shell 会话和所有的子 shell 都是可见的
局部变量: 它只在自己的进程当中使用
10.
expr命令用于数字基本计算和对字符串的处理,注意运算符和数字之前都要有空格,否则无法得出正确结果
expr 命令
(1)对数字的基本计算,做比较时,输出结果假为 0,1 为真;特殊符号用转义符
[root@xuegod63 ~]# expr 2 \> 5
0
[root@xuegod63 ~]# expr 6 \> 5
1
[root@xuegod63 ~]# expr 3 * 5
expr: 语法错误
[root@xuegod63 ~]# expr 3 \* 5
15
[root@xuegod63 ~]# expr 3 \+ 5
8(2)对字符串的处理
[root@xuegod63 ~]# expr length "ni hao" 6
[root@xuegod63 ~]# expr substr "ni hao" 2 4 #从第 2 个开始,截取 4 个字符出来,注意这里下标是从1开始的
i ha
11.
$(( ))应用
格式:$((表达式 1,表达 2))
特点:
1、在双括号结构中,所有表达式可以像 c 语言一样,如:a++,b--等。a++ 等价于 a=a+1
2、在双括号结构中,所有变量可以不加入:“$”符号前缀。
3、双括号可以进行逻辑运算,四则运算
4、双括号结构 扩展了 for,while,if 条件测试运算
5、支持多个表达式运算,各个表达式之间用“,”分开