• 06 变量和引用


    变量

    linux 中变量分为, 本地变量, 环境变量, 位置变量
    本地变量: 类似C 中的局部变量, 在新启动的shell中不存在, 只有当前shell中先定义了, 之后才能引用
    环境变量: 适用于所有由登陆进程产生的子进程, 简言之, 环境变量在用户登陆后到注销之前的所有编辑器, 脚本和程序都有效

    位置参数: 也属于变量, 它用于向shell脚本传递参数, 是只读的(可见, shell脚本也是传值)


    变量赋值

    如果变量值有空格, 则必须加"" 号, 所以这里强调一下, 在引用变量时, 最好也加上"", 例如我们系统中crontab在执行时, 如果不"", 那么引用变量无法使用
    varibale="value" "$variable"
    crontab job 的例子待补充

    这里介绍一下 let , 用来可以进行整数运算
    #!/bin/bash

    a=2009
    let "a+=1"
    echo "a=$a"


    环境变量

    位置参数

    是一种特殊的shell变量, 用于从命令行向shell脚本传递参数, $1表示第一个参数, $2表示第2个.. $0表示脚本名, $*和$@一样, 表示全部参数,$#表示参数个数
    $$ 脚本运行的进程号, $?命令退出状态, 0表示没有错误, 非0表示有错误

    引用

    引用指将字符串用引用符号引起来, 以防止特殊字符被 shell脚本重解释为其他意义. 例如:
    ls a* # 无引用, *被解释为通配符
    ls "a*" # 引用后, *被解释为字面含义


    "" 双引号

    可以引用除 $ ` 这三种以外的所有字符, 也就是说这3种在双引号内部也具有特殊意义. (部分引用)
    如: "$variable"表示以变量值替换变量名, 利用双引号引用变量能够防止字符串分割, 保留变量中的空格, 例如:
    #!/bin/bash
    variable=2010
    echo "$variable" #显示结果 2010
    echo $variable #显示结果 2010

    variable2="x y z"
    echo "$variable2" #显示结果 X Y Z
    echo $variable2 #显示结果 x y z, 很显然, 这个结果不是我们想要的


    '' 单引号,

    单引号可以引用一切字符, 即所有字符在单引号里都是字面量,没有特殊值, 因此成为全引用


    命令替换


    命令替换是指将命令的标准输出作为值赋给某个变量, bash shell定义了两种语法进行命令替换, 一种是 ``, 另一种是$()
    例如:
    echo `who`

    dirlist=`ls -l a*` #命令替换
    echo $dirlist #因为没加""号, 所以换行符被删除, 给出的结果是1行字符串
    echo "$dirlist" #给出的结果是多行字符串

    尽管 $()与``号在命令替换上是等价的, 但是$()形式的命令替换是可以嵌套的(另外, 进行数学运算时, 这种形式常用)
    firstlinelength=$(expr length "$(sed -n '1p' input)")

    #!/bin/bash

    variable="()\{}$""
    echo $variable #显示结果 (){}$"
    echo "$variable" #显示结果 (){}$"

    exit 0

  • 相关阅读:
    使用递归方式判断某个字串是否是回文( palindrome )
    方法的动手动脑
    设计统计英文字母出现频率的感想
    原码、补码、反码
    java语法基础报告
    人月神话阅读笔记01
    第六周学习进度报告--(大二下)
    第五周学习进度报告--(大二下)
    梦断代码阅读笔记03
    个人作业--数组之首尾相连
  • 原文地址:https://www.cnblogs.com/moveofgod/p/4646648.html
Copyright © 2020-2023  润新知