shell 基本语法介绍

一、介绍

shell 是属于弱类型语言,指的是在定义变量时不需要指定变量的类型,就如python也是弱类型语言。一般以:

:.sh结尾的文件

:文件第一行固定为:#!/bin/bash,表示指定以shell进行编程。

:#表示注释

二、shell语法

1、定义变量:变量名=变量值

变量名组成规范:不能以数字,以字母、数字、下划线组成。

释放变量空间:unset 变量名,如unset name

如:name=wzx,输出:echo $name

如:name1="today is a good day",定义变量中带有空格的变量,双引号、单引号均可。

注:单引号、双引号、反单引号的区别:

m="zhangyuqi$name",此时使用的是变量中对应的值

m=’zhangyuqi $name‘,此时输出只是原样输出字符串

m="zhangyuqi \$name",此时输出只是原样输出字符串,与单引号的效果相同。

h=·pwd·,echon h将会输出h对应的shell命令输出当前目录情况。

2、执行shell文件

:当没有执行权限时:sh  shell脚本名

:加入执行权限:chmod +x shell脚本名,再执行./shell脚本名

:可以统计有多少个文件:ls -l |wc -l 

3、read

read  a  b:利用键盘输入多个变量,多余的变量将会都给最后一个变量,变量之间用空格隔开

read -p "提示信息"   变量名

4、参数传递:$1,表示接受的第一个参数,$0表示接受执行的文件名,,显示全部的参数,  $#,统计参数个数

:sh wzx.sh /root

5、重定向:把执行命令的内容输入到文件当中

正确的命令:ls 1>a.txt,将会把正确的命令内容输入文件中这时候时覆盖之前的内容,ls 1>>a.txt,追加到已有的文件中

错误的命令:ls 2>a.txt,将会把错误的命令内容输入文件中这时候时覆盖之前的内容,ls 2>>a.txt,追加到已有的文件中

6、分支结构if  else:判断任意目录是否为空

shell 基本语法介绍

7、逻辑运算符:且:-a      或:-o      非:!

8、比较运算符:相等:-eq         不等:-ne         大于:-gt         小于:-lt          大于等于:-ge        小于等于:-le

9、测试文件的状态:test  参数  变量名

test  -e:表示文件存在

test  -f:表示文件存在且为文件类型

test  -r:表示文件可读

test  -w:表示文件可写

test  -x:表示文件可执行

10、case分支:

shell 基本语法介绍

 11、for循环:seq start  size  max表示生成一个序列开始值,步长,最大值

shell 基本语法介绍

12、while循环:

13、函数:

14、函数返回值的调用:$?

默认正确的返回值为0,错误的返回值为1

15、

获取文件的前5行:head -5 aa.conf

获取文件的前5行后剪取文件的前5个字节:head -5 aa.conf |cut -b 1-4 

注意:1个空格是1个字节,1个字母也是1个字节,1个汉字是3个字节。1个空格是1个字符,1个字母也是1个字符,1个汉字是3个字符

获取文件的前5行后剪取文件的前5个字符:head -5 aa.conf |cut -c 1-4 

获取文件的前5行后剪取文件的第一个域,-d按域剪取,-f取第几个域:head -5 aa.conf |cut -d ":" -f 1 

16、

shell查找某个文件是否包含关键字:grep "root" /etc/group

剪取第一个域:grep "root" /etc/group|cut -d ":" -f 1

17、sed向文件中插入内容

插入文件:sed -i 4a\newLine wzx.txt 

相关推荐