1. shell 基本语法

shell:

shell 是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。

什么是 shell 脚本:

把 Linux 命令或语句放在一个文件中,通过这个程序文件去执行,这个程序为 shell 脚本或 shell 程序;可以在脚本中输入系统的命令以及相关的语法语句组合,比如变量,流程控制语句等,把他们有机结合起来就形成了一个功能强大的 shell 脚本。

创建 shell 程序的步骤:

(1)创建一个包含命令和控制结构的文件,vim first.sh

(2)修改这个文件的权限使它可以执行,chmod +x first.sh

(3)检测语法错误;

(4)执行脚本。

执行 shell 脚本的方式:

(1)通过绝对路径执行,/root/first.sh(需要添加可执行权限x)

(2)bash first.shsh first.sh(可以不添加可执行权限)

(3)source first.sh(可以不添加可执行权限,在当前 shell 执行)

(4)sh < cal.sh,cat cal.sh |sh,cat cal.sh |bash(可以不添加可执行权限)

初识 shell 脚本:

#!/bin/bash                
# it is a shell!           
echo "hello world!"

# 第一行:命令解释器类型
# 第二行:注释信息

2. shell 变量及运用 

变量设置规则:

(1)变量名称通常是大写字母,可以由数字、字母(大小写)和下划线组成。变量名区分大小写,不能以数字开头;

(2)a=10,= 的作用是赋值,= 两边不能有空格;

(3)变量存储的数据类型是整数型和字符串型;

(4)字符串型建议加引号。如果字符串中有空格,要用单引号'或双引号"包含起来;

(5)变量调用时,在变量前加 $,$a

(6)如果需要增加变量的值,可以进行变量值的叠加。变量需要用双引号包含"$变量名"或用${变量名}包含。

变量的分类:

按照变量的作用划分:

(1)用户自定义变量(字母或下划线开头,不能以数字开头)

(2)环境变量:保存和系统操作环境相关的数据

(3)位置参数变量:向脚本中传递参数或数据的,变量名不能自定义,变量的作用是固定的

(4)预定义变量:是 bash 中已经定义好的变量,变量名不能自定义,变量的作用是固定的

按照变量的作用域划分:

(1)全局变量:环境变量,值不随 shell 脚本的执行结束而消失,值传递给子 shell 而不传递给父 shell

env 命令查看所有全局变量:

export 声明全局变量:

添加环境变量:

(2)局部变量:shell 程序内部定义的,使用范围仅限于定义它的程序。包括用户自定义变量、位置变量和预定义变量

命令的替换:

使用 $() 或反引号。echo $(pwd)  echo `pwd`

命令的嵌套使用:

使用 $($())

单引号和双引号:

在单引号中,所有的字符(包括特殊字符)都将解释成字符本身成为普通字符;

在双引号中,除了 $、'' 和 \ 以外所有的字符都解释成字符本身。

删除变量:

unset 变量名:删除变量

定义变量的配置文件:

/etc/profile:系统全局环境和登陆系统的一些配置

/etc/bashrc:shell 全局自定义配置文件,用于自定义 shell

/root/.bashrc:用于自定义某个用户的 bash

/root/.bash_profile:用户单独自定义某个用户的系统环境

插入永久变量:(1)vim /etc/profile;(2)在最后一行写入 export var8=100,保存并退出;(3)source /etc/profile

位置变量:

特殊变量:

$*以一个单字符串显示所有向脚本传递的参数
$#传递到脚本的参数的个数
$$当前进程的进程号 PID
$?显示最后命令的退出状态;0表示没有错误,其他值都表示有错误
$!后台运行的最后一个进程的进程号 PID

3. 数学运算

expr 命令:

(1)对数字的基本计算;做比较时,输出结果为假时为0,1为真;特殊符号用转义符

(2)对字符串的处理

$(()):

运算符意义
++   --递增   递减
+   -   !~正   负   逻辑与取反
+   -   *   /   %加   减   乘   除   余数
<   <=   >   >=比较大小
==   !=相等   不相等
>>   <<向左位移   向右位移
&   ^   |按位的与   按位的异或   按位的或
&&   ||逻辑与   逻辑或
?:条件判断

计算从1加到100的值:

Logo

更多推荐