第五节 变量类型和使用
来源:互联网 发布:充值系统java 源码 编辑:程序博客网 时间:2024/06/10 22:49
一.Shell变量的种类
- 概念:变量的名字就是变量保存值的地方。引用变量的值就叫做变量替换。
如果 variable 是一个变量的名字,那么 $variable 就是引用这变量的值,即这变量所包含的数据。
\$variable 事实上只是 \${variable} 的简写形式。在某些上下文中 \$variable 可能会引起错误,这时候你就需要用 \${variable} 了。 - 用户自定义变量:由用户自己定义、修改和使用
- 预定义变量:Bash预定义的特殊变量,不能直接修改
- 位置变量:通过命令行给程序传递执行参数
二.自定义变量
- 定义新的变量
- 变量名要以英文字母或下划线开头,区分大小写
- 格式:变量名=变量值
- 查看变量的值
- 格式:echo $变量名
- 从键盘输入内容为变量赋值
- 格式:read [-p “信息”] 变量名
- 结合不同的引号为变量赋值
- 双引号 ” “:允许通过$符号引用其他变量值
- 单引号 ’ ’ :禁止引用其他变量值,$视为普通字符
- 反引号
:将命令执行的结果输出给变量
- 清除用户定义的变量
- 格式:unset 变量名
#!/bin/bash# 变量赋值和替换a=375hello=$a#-------------------------------------------------------------------------# 强烈注意, 在赋值的的时候, 等号前后一定不要有空格.# 如果出现空格会怎么样?# "VARIABLE =value"# ^#% 脚本将尝试运行一个"VARIABLE"的命令, 带着一个"=value"参数.# "VARIABLE= value"# ^#% 脚本将尝试运行一个"value"的命令, #+ 并且带着一个被赋值成""的环境变量"VARIABLE". #-------------------------------------------------------------------------echo hello # 没有变量引用, 只是个hello字符串.echo $helloecho ${hello}echo "$hello"echo "${hello}"echohello="A B C D"echo $hello # A B C Decho "$hello" # A B C D# 引用一个变量将保留其中的空白, 当然如果是变量替换就不会保留了.# 在bash中,当变量中有空格、tab之类的字符时候,# 如果需要打印这些字符,需要用双引号进行引用 "$hello".echoecho '$hello' # $hello# ^ ^# 全引用(单引号)的作用将会导致"$"被解释为单独的字符, 而不是变量前缀. # 使用单引号引用变量时候,变量的值不会被引用,只是简单的保持原始字符串.# 注意这两种引用所产生的不同的效果.hello= # 设置为空值.echo "\$hello (null value) = $hello"# 注意设置一个变量为null, 与unset这个变量, 并不是一回事#+ 虽然最终的结果相同(具体见下边).# --------------------------------------------------------------# 可以在同一行上设置多个变量, #+ 但是必须以空白进行分隔.# 慎用, 这么做会降低可读性, 并且不可移植.var1=21 var2=22 var3=$V3echoecho "var1=$var1 var2=$var2 var3=$var3"# 在老版本的"sh"上可能会引起问题.# --------------------------------------------------------------echo; echonumbers="one two three"# ^ ^other_numbers="1 2 3"# ^ ^# 如果在变量中存在空白,那么就必须加上引号# other_numbers=1 2 3 # 将给出一个错误消息. echo "numbers = $numbers"echo "other_numbers = $other_numbers" # other_numbers = 1 2 3# 不过也可以采用将空白转义的方法.mixed_bag=2\ ---\ Whatever# ^ ^ 在转义符后边的空格(\).echo "$mixed_bag" # 2 --- Whateverecho; echoecho "uninitialized_variable = $uninitialized_variable"# Uninitialized变量为null(就是没有值). uninitialized_variable= # 声明, 但是没有初始化这个变量, #+ 其实和前边设置为空值的作用是一样的. echo "uninitialized_variable = $uninitialized_variable" # 还是一个空值.uninitialized_variable=23 # 赋值.unset uninitialized_variable # Unset这个变量.echo "uninitialized_variable = $uninitialized_variable" # 还是一个空值.
三.位置变量
- 表示为$n,n为1-9之间的数字
四.预定义变量
- 表示形式:
- $#:命令行中位置参数的个数
- $*:所有位置参数的内容
- $?:上一条明了执行后返回的状态,当返回状态值为0时表示执行成功,非0值表示执行异常或错误
- $0:当前执行的进程/程序名
五.数值变量的运算
- 计算整数表达式的运算结果
- 格式:expr 变量1 运算符 变量2 …[运算符 变量n]
- expr的常用运算符
- 加法运算: +
- 减法运算: -
- 乘法运算: *
- 除法运算: /
- 求模(取余)运算:%
0 0
- 第五节 变量类型和使用
- 第五节 定时器使用
- 第五节GDB使用
- 第五节 ECMScript对象类型
- 第一篇:变量类型和类型测试
- 第五节Swift 数值类型及其类型转换
- 第五节:精灵的使用介绍
- 第五节 CImage和CBmp(二)
- 第五节 Swift 枚举和结构体
- ObjC第五节:协议和分类
- iPhone第五节:多媒体和手势
- 汇编第五节-[bx]和loop指令
- 第2章 变量和基本类型
- 第2章 变量和基本类型
- 第2章:变量和基本类型
- 第2章 变量和基本类型
- 第2章 变量和基本类型
- 第3章 类型、存储和变量
- redis shell启动脚本
- android调用系统相机并剪切照片(个人学习)
- [2016/11/14]naive问题中异或的巧妙用法
- MyBatis的传入参数parameterType类型
- USB设备请求命令
- 第五节 变量类型和使用
- linux:nohup 不生成 nohup.out的方法
- 关于在IOS10 系统上运行App 遇到的问题
- 周计划安排-凡事预立,不预则废
- 2016中国软件大会(CSC 2016)即将在北京召开
- 第六节 Shell输入、输出功能和字符设置
- EasyDarwin学习之EasyIPCamera---弃私有SDK接入海康、大华等厂家IPCamera
- 安装python出现的问题解决
- Monkey Script Sample - Execute Monkey and Record Log and Screen