局部变量
local 变量名,只能用于函数
位置变量
$1、$2、${1,1}
特殊
$#
位置参数个数
$*
参数列表,双引号引用为一个字符串
$@
参数列表,双引号引用为单独的字符串
$?
上一个命令的退出状态,0成功,other失败
ls -l /
echo $? 打印0
ls -l /god
echo $? 打印非零
位置参数,在文件后面跟随的参数
$11 表示取第一个参数和1拼接
${11} 表示取第11个参数
打印变量和另一个字符串拼接
echo ${sxt}good 将sxt内的内容和good拼接
管道的父子关系
sxt=100
sxt=200 | echo ok 会将左边的输出作为右边的输入,并且管道左右两边会开启两个子进程,sxt=200是在另一个进程里
执行
echo $sxt 还是打印100,不会打印200
例外
echo $$ | cat 还是当前进程id,因为$$的优先级比管道| 高
环境变量(export)
export 变量名 导出变量,使得在另一个子进程也能使用该变量,子进程变量的修改不会影响父进程,在父进程变量导出
到子进程后,修改父进程变量,不会修改子进程
演示在子进程使用父进程变量
bash sh03.sh & //&表示让子进程在后台执行