变量分类
环境变量
1)HOME
2)更新PATH命令: $PATH=$PATH:新路径
3)TERM 终端类型
4)PS1 主提示符,即为$或者#,我们可以修改 #PS1-"Be happy! :" 或者$PS1="something:"
-----------------------------------------------------------------------------------------------------------------------
位置变量
$0 对应当前执行的脚本文件名
$i 对应第i个参数,i 大于0小于十
命令行参数,一次只能处理9个,如果多于9个,可以使用shift n 把参数向前偏移n次。 不带参数的命令shift模式是参数1
------------------------------------------------------------------------------------------------------------------------
预定义特殊变量
$# 位置参数的个数
$*命令行中所有参数
$!上一个后台命令,对应的进程号
$?最近一条命令的退出状态
$$ 当前进程的PID
---------------------------------------------------------------------------------------------------------------------------
"basename $i" $i 是一个绝对路径名,这个操作可以去除绝对路径中的路径名
数组只是变量的一种。
---------------------------------------------------------------------------------------------------------------------------
用户自定义变量
创建/声明一个变量的三种方式:
1)declare
2) typeset
1) 2) 这两种方式,都可以指定变量的属性,比如只读,不可删除等等。
3)在赋值的时候声明、
格式: 变量名=变量值
注意:
等号左右不可以有空格。
包含空格的变量值,要使用双引号把它引起来
==============================================================================================================
变量赋值
1, 使用read赋值
格式是 read 变量1 变量2
shell脚本执行到read命令的时候,会暂停脚本的运行,并等待键盘的录入,变量的赋值有如下规则:
1)多个数据和变量之间以空格分隔
2)当变量个数和数据个数相同的时候,则对应赋值
3)当变量个数大于数据个数的时候,没有输入数据的变量取空值
4)当变量个数小于数据个数的时候,多于数据赋值到最后一个变量
-----------------------------------------------------------------
使用read 选项-p 可以代替echo 来提示用户。
read name -p "请输入您的姓名"
-----------------------------------------------------------------
如果没有指定变量来保存read的输入内容,则bash会把用户输入放到一个名字为REPLY的变量中
-----------------------------------------------------------------
2, 直接给变量赋值
变量名=变量值 等号两侧不能有空格
3,使用命令行参数给位置变量赋值
4,利用命令的输出结果赋值
需要在赋值语句中使用反引号,反引号表示引用命令的执行结果。
RESULT='find /etc -name rc.local'
CURRDIR='pwd'
DIR='basename /home/peter/name.txt'
这行语句的作用是把绝对路径的目录部分去掉
5 从文件读入数据实现赋值
基本格式:
while read LINE
do
chmod +x $LINE
done
这个是处理文件的基本格式!!
======================================================================================================================
输出变量的方式
1, echo命令输出变量
echo $变量名
------------------------------------------------------------------------------------------------------------
2, printf命令,格式化输出变量
======================================================================================================================
数组变量
数组的定义
name=(成员值1 成员值2 成员值3 ...) 成员变量之间没有逗号
也可以单独赋值
name[2]="变量值"
name[3]=344
数组成员的使用 ${name[i]}
-----------------------------------------------------------------------------------------------------------
数组元素的个数 ${#name[*]}
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
阅读(853) | 评论(0) | 转发(0) |