shell编程 3 变量
用户自定义变量:
一,规则
1,变量不能以数字开头,比如2age这不是合法的变量,变量的默认类型都是字符串。
2,变量用=连接值,=之间不能有空格
3,如果变量值包含空格,需要用''或者“”将值括起来
4,环境变量名建议大写
5,如果将命令的结果作为变量值赋予变量,则需要使用反引号`或者$()包含命令
5,自定义变量只在当前的shell中生效
二,变量查看与删除
set查看系统中所有的变量
unset删除系统中某个变量
---------------------------------------------------------------------------------
环境变量
一,规则
1,环境变量不仅在当前的shell中生效,而且这个shell下面的子shell也生效,如果把环境变量写入配置文件,那么这个环境变量在所有的shell中生效
2,声明环境变量:exportbianliang=12;
二,相关命令
pstree命令查看进程树
env查看环境变量
三,PATH变量
1,系统查找命令的路径,中间以:冒号来分割
2,不建议将自己写的脚本放在PATH的路径当中,避免混乱
----------------------------------------------------------------------------------
位置参数变量:目的是将命令行中输入的参数传递到shell脚本当中
一,规则
1,$0代表命令本身,$1-$9代表命令中传递的第一个到第九个参数,如果参数大于9个,则需要用大括号括起来,如:${10}
$*代表命令中所有的参数,并当做一个整体看待在循环当中之后循环1次
$@代表命令中所有的参数,把每个参数区分对待在循环当中有几个参数就会循环几次
$#代表命令中所有的参数的个数
----------------------------------------------------------------------------------
linux把进程放置在后台需要引用&符号,比如ls-rlt&
预定义变量
一,规则
1,$?代表上条命令的返回结果传递给$?,如果命令不存在返回127,执行失败是非0的数字,执行正确是返回0
2,$$当前进程的PID号
3,$!后台运行的最后一个进程的PID号
二,接收键盘输入
read选项变量名
read-t30-p"请输入姓名:"name等待用户30秒输入name
read-s-p"请输入年龄:"age隐藏用户输入的age
read-n1-t30-p"请输入性别:"sex等待30秒等待用户只能输入1个字符代表sex