Linuxshell编程之变量
shell是简化管理操作
1.Bash变量:
变量命名规则
1.开头为字符或下划线,名字中间中能有字母、数字和下划线组成;
2.变量的长度不超过255个字符;
3.变量名在有效的范围内必须是唯一的;
4.在Bash中,变量的默认类型都是字符串型.
shell中默认变量存储类型都是字符串型
shell变量分三大类:用户自定义变量,环境变量,预定义变量
用户自定义变量:
变量定义: 例如: x=5 name="linux_user" 等号两边不能有空格 变量调用: echo $变量名 //在变量名前加¥
变量叠加:
变量查看: set 查询系统所有变量
选项:
-u:如果设定此选项,调用未声明变量时会报错(默认无任何提示)
删除变量 unset 变量名
bash环境变量
环境变量
环境变量与用户自定义变量的区别?(环境变量时全局变量,用户自定义变量时局部变量)
用户自定义变量只在当前的Shell中生效
环境变量在当前Shell和这个Shell的所有子Shell中生效
设置环境变量: export 变量名=变量 env 查看环境变量
PATH变量:系统查找命令的路径 echo $PATH查看PATH环境变量 增加PATH的值 PATH="$PATH":目录 语系变量: locale查询当前系统语系
LANG是当前生效的语系 locale -a 查看linux所有语系 系统默认语系: /etc/sysconfig/i18n
Linux中文支持
1,图形界面
2,远程工具
3,纯字符界面不支持中文,可以使用插件(zhcon);
位置参数变量:
n n为数字,$0代表命令本身,$1-$9代表第一道第九个参数,十以上的参数需要用大括号包含,如${10}
$* 这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
[email protected] 这个变量也代表命令行中所有的参数,不过[email protected]把每个参数区分对待
$# 这个变量代表命令行中所有参数的个数
预定义变量:
$? 最后一次执行的命令的返回状态。如果这个值为0,证明上一个命令正确执行,如果这个变量的值为非0,则证明上一个命令执行不正确了
$$ 当前进程的进程号(PID)
$! 后台运行的最后一个进程的进程号
接收键盘输入
read [选项][变量名]
-选项
-p "提示信息" :在等待read输入时,输出提示信息
-t 秒数:read命令会一直等待用户输入,指定等待时间
-n 字符数:read命令只接受指定的字符数
-s:隐藏输入的数据,适用于机密信息的输入
shell 运算符:
declare 申明变量类型
declare [+/-][选项] 变量名
-: 给变量设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
-i:将变量声明为整数型(integer)
-x:将变量声明为环境变量 //和export 相同 export 调用 declare -x
-r:将变量声明为只读变量
-p:显示指定变量的被声明的类型
数值运算
方法1:declare -i dd =$aa+$bb
方法2: dd=$(expr $aa + $bb)
#dd的值是aa和bb的和,注意“+”左右必须有空格
方法3: dd=$(($aa+$bb))或dd= $[$aa+$bb]