shell 编程:shell 脚本基础
1. shell 基本语法shell:shell 是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。什么是 shell脚本:把 Linux 命令或语句放在一个文件中,通过这个程序文件去执行,这个程序为 shell 脚本或 shell 程序;可以在脚本中输入系统的命令以及相关的...
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.sh 或 sh 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的值:
更多推荐
所有评论(0)