第五节 变量类型和使用

来源:互联网 发布:充值系统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之间的数字

微信截图_20161028085148.png

四.预定义变量

  • 表示形式:
    • $#:命令行中位置参数的个数
    • $*:所有位置参数的内容
    • $?:上一条明了执行后返回的状态,当返回状态值为0时表示执行成功,非0值表示执行异常或错误
    • $0:当前执行的进程/程序名

五.数值变量的运算

  • 计算整数表达式的运算结果
    • 格式:expr 变量1 运算符 变量2 …[运算符 变量n]
  • expr的常用运算符
    • 加法运算: +
    • 减法运算: -
    • 乘法运算: *
    • 除法运算: /
    • 求模(取余)运算:%
0 0
原创粉丝点击