一、shell脚本的基础知识
1、shell脚本的本质
语言的分类有:
- 编译性语言 ---------- C语言、C++语言、JAVA、PHP、Python等,不同编译器编译的执行文件不同,运行的平台也不尽相同。
- 解释性语言
— shell脚本语言是解释性语言
— shell脚本的 本质 ------------------- shell命令的有序集合。
2、shell编程的基本过程
- step1 :建立shell文件
包含任意多行操作系统命令或shell命令的文本文件。
- step1 :赋予shell文件执行权限
用chmod命令来修改权限。
- step1 : 执行shell文件
直接在命令行上调用shell程序。
实例:
- step1 :建立shell文件(可用任何建立文本的文件的方法)
$cat prog1.sh
date
- step2 :赋予shell文件执行权限(初始化文本无执行权限)
$chmod 740 prog1.sh ------------- $chmod u+x prog1.sh
- step3 : 执行shell程序
.在prog1.sh转变成可执行文件后:使用 --------- ./prog1.sh 在当前文件执行该文件。
- step3 : 指定路径或修改变量PATH后执行shell程序
$./prog1.sh
二、shell变量
- shell允许用户连理变量存储数据,但不支持数据类型(整型、字符、浮点型),将任何赋给变量的值都解释为一串字符。
Variable=value
— count =1
— echo $count
— DATA = 'date'
— echo $DATA
- Bourne Shell有如下四种变量:
— 用户自定义变量
— 位置变量 即 命令行变量
— 预定义变量
— 环境变量
1、用户自定义变量
— 在shell编程中通常使用全大写变量,方便识别 ----- $COUNT=1
— 变量的调用:在变量前加$ ----- $echo $HOME
— Linux Shell/bash从右向左赋值
Y=y
X=$Y
echo $X
y
— 使用unset命令删除变量的赋值
Z=hello
echo $Z
hello --- 打印结果
unset Z
echo $Z
1、位置变量 ----- 即 命令行变量
- $0 :与键入的命令行一样,包含脚本文件名。
- $1,$2,............... $9 :分别包含第一到第九个命令行参数。
- $# :包含命令行参数的个数。
- $@ :包含所有命令行参数:$1,$2,............... $9
- $? :包含前一个命令的退出状态。
- $* :包含所有命令行参数:$1,$2,............... $9
- $$ :包含正在执行进程的ID号。
3、常用shell环境变量
- HOME :/etc/passwd文件中列出的用户主目录。
- IFS :Internal Field Separator,默认问空格,tab及换行符。
- PATH :shell搜索路径。
- PS1、PS2 :默认提示符($)及换行提示符(>)
- TERM :中端类型,常用的有vt100,ansi,vt200,xterm等。
- HISTSIZE:历史记录保存条数。
查看所有的环境变量命令:exprot -------------------- env