zoukankan      html  css  js  c++  java
  • (转载)shell变量基础—shell自定义变量

    (转载)http://see.xidian.edu.cn/cpp/html/1494.html

    一、Shell定义变量需要遵循的规则

    Shell编程中,使用变量无需事先声明,同时变量名的命名须遵循如下规则:

    1. 首个字符必须为字母(a-z,A-Z)
    2. 中间不能有空格,可以使用下划线(_)
    3. 不能使用标点符号
    4. 不能使用bash里的关键字(可用help命令查看保留关键字)

    二、shell变量赋值

    需要给变量赋值时,可以这么写:
       变量名=值 

    三、shell变量的引用

    要取用一个变量的值,只需在变量名前面加一个$ ( 注意: 给变量赋值的时候,不能在"="两边留空格 )。例如:
    #!/bin/sh
    # 对变量赋值:
    a="hello world"  #等号两边均不能有空格存在
    # 打印变量a的值:
    echo "A is:" $a
    注:上边的#号为注释,将在后边讲到。

    挑个自己喜欢的编辑器,输入上述内容,并保存为文件first,然后执行 chmod +x first 使其可执行,最后输入 ./first 执行该脚本。其输出结果如下:
        A is: hello world

    有时候变量名可能会和其它文字混淆,比如:
        num=2
        echo "this is the $numnd"

    上述脚本并不会输出"this is the 2nd"而是"this is the ";这是由于shell会去搜索变量numnd的值,而实际上这个变量此时并没有值。这时,我们可以用花括号来告诉shell要打印的是num变量:
        num=2
        echo "this is the ${num}nd"

    其输出结果为:this is the 2nd
     
    注意:shell的默认赋值是字符串赋值。比如:
       var=1
       var=$var+1
       echo $var
    打印出来的不是2而是1+1。为了达到我们想要的效果有以下几种表达方式:
       let "var+=1"
       var=$[$var+1]    
       var=`expr $var + 1`#注意加号两边的空格,否则还是按照字符串的方式赋值。
    注意:前两种方式在bash下有效,在sh下会出错。

    let表示数学运算,expr用于整数值运算,每一项用空格隔开,$[]将中括号内的表达式作为数学运算先计算结果再输出。

    Shell脚本中有许多变量是系统自动设定的,我们将在用到这些变量时再作说明。除了只在脚本内有效的普通shell变量外,还有环境变量,即那些由export关键字处理过的变量。本文不讨论环境变量,因为它们一般只在登录脚本中用到。

  • 相关阅读:
    图解AVL树
    浅析Java7中的ConcurrentHashMap
    浅析CopyOnWriteArrayList
    浅析CAS与AtomicInteger原子类
    IDEA左侧不以树形结构展示项目结构
    maven常见问题
    Mybatis实现多表联合查询
    Mybatis实现单表增删改查操作
    解决mybaits配置错误:Cause: org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 119; 对实体 "characterEncoding" 的引用必须以 ';' 分隔符结尾。
    Deepin_运维实践系列博客导航
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3215388.html
Copyright © 2011-2022 走看看