实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
引言
SHELL在处理一些问题的时候有得天独厚的优势,快捷方便,学会了还可以显摆显摆,当然了,shell的语法有点坑爹,没有系统的学过,只能一点一点的积累。
今天这个是在实现一个刷新数据库数据的脚本的时候碰到的一些知识点,刷新的时候用到了正则匹配、数学运算、比较等等。
shell中的数组
数组的定义
arr=(1 2 3 4 5)arr=(燕睿涛 yrt lulu yanruitao)arr=('^[0-9]+$' '^yrt\.(\d+)\.log$')arr=( "燕睿涛" \ "yanruitao" \ "today is a good day!")
数组的使用
len=${#arr[@]} #返回的是数组元素的个数echo ${arr[0]} #数组中的第一个元素,这个和其他语言的数组类似,下表从0开始echo ${arr[2]} #数组中的第3个元素
实际的例子
[yanruitao@boss_runtime sh]$ arr=(> "燕睿涛"> "http:\/\/.1234.html"),只有echo的值会传递给ret变量。
杂项知识点
字符串转数组
[yanruitao@boss_runtime sh]$ str="燕睿涛 lulu yrt yanruitao"[yanruitao@boss_runtime sh]$ arr=($str) #这一步将字符串转化为了数组[yanruitao@boss_runtime sh]$ echo ${arr[*]}燕睿涛 lulu yrt yanruitao[yanruitao@boss_runtime sh]$ echo ${#arr[@]}4
常用判断标志
[ -z STRING ] “STRING” 的长度为零则为真。
[ -n STRING ] or [ STRING ] “STRING” 的长度为非零 non-zero则为真。
[ -d FILE ] 如果 FILE 存在且是一个目录则为真。
[ -a FILE ] 如果 FILE 存在则为真。
linux后台运行相关
& #在一个命令的最后加上这个命令,可以将该命令放到后台执行./update.sh 100 500 &ctrl + z #讲一个正在前台执行的命令放到后台,并且处于暂停状态jobs #查看当前后台运行的命令jobs -l #可以显示所有后台任务的PID[yanruitao@boss_runtime sh]$ jobs -l[1] 9681 Running ./t.sh 100 300 &[2] 9683 Running ./t.sh 100 300 &[3]- 9685 Running ./t.sh 100 300 &[4]+ 9688 Running ./t.sh 100 300 &fg #把后台中的命令调至前台继续运行,如果后台有多个命令可以使用`fg %jobnumber`将选中命令调出[yanruitao@boss_runtime sh]$ jobs -l[2] 10033 Running ./t.sh 100 300 &[3] 10035 Running ./t.sh 100 300 &[4]- 10037 Running ./t.sh 100 300 &[5]+ 10039 Running ./t.sh 100 300 &[yanruitao@boss_runtime sh]$ fg %2./t.sh 100 300 bg #讲一个在后台暂停的命令变成在后台继续执行。同样,如果有多个命令,可以使用bg %jobnumber[yanruitao@boss_runtime sh]$ jobs -l[1]- 11655 Running ./t.sh 100 300 &[2]+ 11662 Running ./t.sh 100 300 &[yanruitao@boss_runtime sh]$ fg %1./t.sh 100 300^Z[1]+ Stopped ./t.sh 100 300[yanruitao@boss_runtime sh]$ jobs -l[1]+ 11655 Stopped ./t.sh 100 300[2]- 11662 Running ./t.sh 100 300 &[yanruitao@boss_runtime sh]$ bg %1[1]+ ./t.sh 100 300 &[yanruitao@boss_runtime sh]$ jobs -l[1]- 11655 Running ./t.sh 100 300 &[2]+ 11662 Running ./t.sh 100 300 &kill #终止进程kill %num #通过jobs查看的job号,进行杀死kill pid #通过进程号杀掉进程ctrl + C #终止当前前台的进程
以上所述就是本文的全部内容了,希望能够对大家熟悉Linux shell命令有所帮助。