Shell编程快速入门
脚本格式要求
- 脚本以
#!/bin/bash
开头 - 脚本需要有可执行权限
脚本的常用执行方式
- 方式1:输入脚本的绝对路径或相对路径
- 方式2:sh+脚本
Shell的变量
Shell变量介绍
- Linux Shell中的变量分为系统变量和用户自定义变量
- 系统变量:
$HOME
,$PWD
,$SHELL
,$USER
等等 - 显示当前shell中所有变量:
set
- 系统变量:
Shell变量的定义
- 定义变量:
变量=值
- 撤销变量:
unset 变量
- 声明静态变量:
readonly 变量
Shell变量的定义规则
- 变量名称可以由字母、数字和下划线组成,但是不能以数字开头
- 等号两侧不能有空格
- 变量名称一般习惯为大写
Shell设置环境变量
基本语法
export 变量名=变量值
:将shell变量输出为环境变量source 配置文件
:让修改后的配置信息立即生效echo $变量名
:查询环境变量的值
Shell注释规则
-
单行注释
#
,例如# 这是一个单行注释
-
多行注释
:<<! 内容 !
-
:<<! 这是一个多行注释 !
-
Shell位置参数变量
介绍
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用位置参数变量。
比如:./myshell.sh 100 200
这就是一个执行shell的命令行,可以从myshell脚本中获取到参数信息
基本语法
$n
:n为数字,$0
代表命令本身$1-$9
代表第一到第九个参数- 十以上的参数需要用大括号包含,如
${10}
$*
:这个变量代表命令行中所有的参数,$*
把所有的参数看成一个整体$@
:这个变量也代表命令行中原有的参数,不过区分对待$#
:这个变量代表命令行中所有参数的个数
Shell预定义变量
基本介绍
- 就是shell设计者实现已经定义好的变量,可以直接在shell脚本中使用
基本语法
$$
:当前进程的进程号PID$!
:后天运行的最后一个进程的进程号PID$?
:最后一次执行的命令的返回状态。- 如果这个变量的值为0,证明上一个命令成功执行
- 如果这个变量的值为非0,则证明上一个命令执行不正确
运算符
基本语法
"$((运算式))"
或"$[运算式]"
或者expr m + n
,其中m和n都是数字- 注意
expr
运算符间要有空格,如果希望将expr
的结果赋给某个变量,使用反引号`` expr m - n
expr \*,/,% 乘,除,取余
条件判断
基本语法
[ condition ]
注意condition
前后要有空格- 非空返回
true
,可以使用$?
验证
- 非空返回
判断语句
-
两个整数的比较
-
-lt
:小于 -
-le
:小于等于 -
-eq
:等于 -
-gt
:大于 -
-ge
:大于等于 -
-ne
:不等于
-
-
按照文件权限进行判断
-r
:由读的权限-w
:有写的权限-x
:有执行的权限
-
按照文件类型进行判断
-f
:文件存在并且是一个常规的文件-e
:文件存在-d
:文件存在并是一个目录
read读取控制台输入
基本语法
read(选项)(参数)
- 选项
-p
:指定读取值时的提示符-t
:指定读取值时等待的时间(秒),如果没有在指定时间内输入,就不要等待了
- 参数
- 变量:指定读取值的变量名