第二十二节 shell变量

变量设置规则:
区分大小写
字母、数字、下划线组成,不能数字开头,环境变量大写,便于quf
bash中变量默认类型是字符串型
变量用等号连接,等号左右不能有空格
变量的值如果有空格,用引号引起来
可用set查看所有变量


变量分类:用户自定义变量、环境变量、位置参数变量、预定义变量,可以通过set命令查看系统中所有存在的变量
位置参数变量:主要用来向脚本中传递参数或者书籍,变量名不能自定义,变量作用固定
预定义变量:bash已经定义好的变量,相当于关键字变量

aa=`ll -a`
echo $aa 相当于执行 ll -a 命令
bb=$(ll -a)
echo $bb 相当于执行 ll -a 命令

aa=`expr 4 + 5`
输出9
bb=$((4+5))
输出9

aa=` expr \` expr 4 + 5 \` \* 6 `
输出54
bb=$(((4+5)*6))
输出54

变量叠加:
单引号和双引号的区别:单引号会将所有特殊字符脱意,其中"$aa"和${aa}效果相同
aa=123
bb='$aa'123
输出$aa123
cc="$aa"123
输出123123
dd=${aa}123
输出123123

删除变量
unset name
定义静态变量:readonly B=2 ,静态变量只读,不可用unset删除

环境变量定义
export 变量名=变量值
作用域:当前shell已经所有shell的子shell

位置参数
$n n表示数字,$0代表命令本身 $1-$9表示第一到第九个参数,十个以上用${10}
$* 代表命令行中的所有参数,把所有参数写成一个整体'a d f g'
$@ 代表命令行中的所有参数, 把每个参数区分对待 "a" "d" "f" "g"
$# 参数的个数

first.sh
#!/bin/bash
echo $4
命令:source first.sh a b c f
输出:f(第四个参数)

预定义变量
$? 执行上一个命令的返回值 执行成功返回0,失败非0
$$ 当前进程的进程id(pid),即当前脚本执行时生成的进程号
$! 后台运行的最后一个进程号,最近一个被放入后台执行的进行 &

source first.sh a b g h : echo $? 查看source first.sh a b g h是否执行完成,:是连接两个命令的意思

猜你喜欢

转载自www.cnblogs.com/kogmaw/p/12410219.html