环境变量和本地变量,环境变量是具有全局属性的。
在交互式shell下面定义变量:VALUE=100
这定义的即为本地变量,如果要将其变成环境变量则需要export VALUE 导出环境变量,取消环境变量则可以使用unset命令。
环境变量是可以被子进程继承的更是可以被子子孙孙都继承的。环境变量在程序替换掉的时候默认是不会被替换掉的。
变量的拼接
shell环境变量
例如PWD HOME HOSTNAME BASH GROUPS
系统自带的,用于工作环境
shell的位置变量
#:传递到脚本的参数个数。*: 以一个单字符串显示所有向脚本传递的参数 与位置变量不同 此选项参数可超过9个
$$: 脚本运行的当前进程的ID号
$!: 后台运行的最后一个进程的进程ID号
$@:与$#相同,但是使用时加引号,并在引号中返回每个参数
$- :显示shell使用的当前选项,与set命令功能相同
$? :显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
位置变量:
expr 数值运算的命令
#!/bin/bash
SUM=$(expr $1 + $2)
echo "$1 + $2 = $SUM"
局部变量和全局变量 环境发生变化 shell的运行原理:读取一行创建子进程进行exec程序替换 在子SHELL里面设置环境变量在父SHELL是不生效的