Shell 脚本----浅析变量
-
Shell 变量的种类
- 用户自定义变量: 由用户自己定义、修改和使用
- 预定义变量: Bash 预定义的特殊变量,不能直接修改
- 位置变量: 通过命令行给程序传递执行参数
-
定义新的变量
a. 变量名要以英文字母或者下划线开头,区分大小写
b. 格式: 变量名=变量值
- 查看变量的值
a. 格式: echo $变量名
[[email protected] shell]# vim taran.sh
1 #!/bin/bash
2 #test.sh
3
4
5 echo "my name is user1"
6 echo "my name is user1"
7 echo "my name is user1"
8 echo "my name is user1"
9 echo "my name is user1"
- 变量的赋值与引用
引用变量时 ,$应在{}外,变量在{}里面
- 从键盘输入内容为变量赋值
格式: read [-p "信息"] 变量名
-
结合不同的引号为变量赋值
双引号 “ ”: 允许通过$符号引用其他变量值
单引号 ‘ ’: 禁止引用其他变量值,$ 视为普字符
反引号 ` ` : 将命令执行的结果输出给变量
- 变量的删除
unset + 变量名 删除变量
unset name 删除变量后,执行脚本
#unset name 注释后,执行脚本
- 位置变量
- 位置参数
表示为 $n, n为1~9 之间的数字
应用位置变量
1 #!/bin/bash 2 #test httpd service 3 4 case $1 in 5 start) 6 echo "start ......" 7 ;; 8 stop) 9 echo "stop........" 10 ;; 11 restart) 12 echo "restart ....." 13 ;; 14 esac ~
2 . 数字运算利用位置变量
[[email protected] shell]# vim expr.sh
1 #!/bin/bash
2 #expr
3
4 expr $1 \* $2
5 expr $1 + $2
-
预定义变量
1. $#: 命令行中位置参数的个数
2. $* : 所有位置参数的内容
3. $? : 上一条命令执行后返回的状态,当返回状态为0时表示执行正常,非0值表示执行异常或者出错
4. $0 : 当前执行的进程/程序名
$0 :
[[email protected] shell]# vim text.sh
1 #!/bin/bash
2 #test.sh
3
4 echo $0
5 echo $0
6 echo $0
7 echo $0
$#: 参数个数
[[email protected] shell]# vim text.sh
1 #!/bin/bash
2 #test.sh
3
4 echo $#
$* : 参数分别是什么
[[email protected] shell]# vim text.sh
1 #!/bin/bash
2 #test.sh
3
4 echo "总共有 ${#}个参数,参数分别是:"
5 echo
6 echo $*
$* :
[[email protected] shell]# vim text.sh
1 #!/bin/bash
2 #test.sh
3
4 for i in $*
5 do
6 echo $i
7 sleep 2
8 done
$* 运算
$? : 检查上一条命令 执行成功还是失败
汇总 :