shell脚本基础结构以及变量-Linux(9)
前言
- 本博文讲shell脚本的结构以及变量,就当是笔记了,在我明明哥忘记的时候可以揪出来看看。
shell编程
首先看看脚本代码的基础结构
#! /bin/bash
# echo hello word
echo "hello word"
其中,#! /bin/bash
指定执行脚本解释器的绝对路径名,# echo hello word
注释。
shell变量
- 可以包含数字 字母 下划线,但是必须以字母,下划线开始
- 大小写敏感
- 不需要事先声明
- 所有变量均看作是字符串处理,在需要时shell会转换成具体数值,进行相关操作
用户自定义变量
定义变量
variable-name=value
- 字符串里有空格就必须用双引号括起来,没有则不用
- 等号两边不能有空格
$variable-name
取出变量值
清除变量
unset variable-name
环境变量
变量名称 | 含义说明 |
---|---|
HOME | 当前用户的主目录 |
PATH | 以冒号分隔,不指定目录时,则其为默认目录 |
PS1 | 命令提示符,超级用户为# ,普通用户为$ |
PS2 | 二级提示符,一般为> |
IFS | 输入域分隔符,一般是空格,换行符 |
TERM | 用来设置用户的终端类型 |
查看环境变量
env
$<变量名>
加入环境变量PATH
export PATH=$PATH:/你的路径
位置变量
shell提供10个位置变量
$0
存放脚本名称$1
~$9
存放一般参数shift [n]
可以将参数左移n个位置
现有脚本内容
#! /bin/bash
echo $0
echo $1,$2,$3,$4,$5,$6,$7,$8,$9
shift
echo $1,$2,$3,$4,$5,$6,$7,$8,$9
shift 2
echo $1,$2,$3,$4,$5,$6,$7,$8,$9
执行脚本时传入参数
sh test 11 22 33 44 55 66 77 88 99
其输出结果为
- 执行脚本时,传入参数的顺序不能改变
- shift移动是在上一次移动后的基础上
特殊变量
- 特殊变量的变量值由系统指定
变量名称 | 含义说明 |
---|---|
$# | 传递给脚本的实际参数个数 |
$$ | 当前shell脚本的进程号 |
$* | 位置参数的值,各个参数用环境变量IFS定义的分隔符分隔开 |
$@ | 位置参数的值,不使用环境变量IFS定义的分隔符分隔 |
$! | 上一个后台命令的进程号 |
$? | 执行最后一条命令的退出状态 |
还没有评论,来说两句吧...