定义变量

定义变量时,变量名不加美元符号($),如:

variableName="value"

注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。
  • 使用变量

    使用一个定义过的变量,只要在变量名前面加美元符号($)即可,如:

    your_name="mozhiyan"
    echo $your_name
    echo ${your_name}

    变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:

    for skill in Ada Coffe Action Java
    do
    echo "I am good at ${skill}Script"
    done

    如果不给skill变量加花括号,写成echo "I am good at $skillScript",解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。

    重新定义变量

    已定义的变量,可以被重新定义,如:

    myUrl="http://see.xidian.edu.cn/cpp/linux/"
    echo ${myUrl} myUrl="http://see.xidian.edu.cn/cpp/shell/"
    echo ${myUrl}

    只读变量

    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。

    #!/bin/bash
    
    myUrl="http://see.xidian.edu.cn/cpp/shell/"
    readonly myUrl
    myUrl="http://see.xidian.edu.cn/cpp/danpianji/"

    运行脚本,结果如下: /bin/sh: NAME: This variable is read only.

    删除变量

    使用 unset 命令可以删除变量。变量被删除后不能再次使用;unset 命令不能删除只读变量。

    #!/bin/sh
    
    myUrl="http://see.xidian.edu.cn/cpp/u/xitong/"
    unset myUrl
    echo $myUrl

    上面的脚本没有任何输出。

    变量类型

    运行shell时,会同时存在三种变量:

    1) 局部变量

    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

    2) 环境变量

    所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

    3) shell变量

    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

    shell变量的更多相关文章

    1. linux中shell变量$#,$@,$0,$1,$2的含义解释

      linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

    2. awk使用shell变量

      awk使用shell变量  (可以计算浮点数) 其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time=&qu ...

    3. shell变量详解

      1 shell变量基础 shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.de ...

    4. 三、Shell变量类型和运算符

      一.Shell变量的应用 1.Shell变量的种类     ·用户自定义变量:由用户自己定义.修改和使用     ·预定义变量:Bash预定义的特殊变量,不能直接修改     ·位置变量:通过命令行给 ...

    5. Shell入门教程:Shell变量

      变量 是一种很“弱”的变量,默认情况下,一个变量保存一个串,Shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如 let.declare.expr.双括号等. Shell变量可 ...

    6. Shell变量的定义与赋值操作注意事项

      1 shell变量是弱类型 * 声明变量不用声明类型 * 可以存储不同类型的内容 * 使用时要明确变量的类型 * 区分大小写 2 变量声明及赋值格式 2.1 格式  变量名=变量值 # 注意等号两侧不 ...

    7. Linux shell 变量 数学 运算

      Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...

    8. linux环境几个特殊的shell变量

      特殊的shell变量: $0  获取当前执行的shell脚本的文件名 $n  获取当前执行的shell脚本的第n个参数值,n=1..9 $*  获取当前shell的所有参数 “$1 $2 $3 …注意 ...

    9. 《Linux shell变量总结回顾》RHEL6(转)

      文章版权:http://www.cnblogs.com/linux-super-meng/ 环境变量路径: [root@localhost ~]# set   //查看到的是局部变量和全局变量2种 [ ...

    随机推荐

    1. ASP.NET Core 之 Identity 入门(一)

      前言 在 ASP.NET Core 中,仍然沿用了 ASP.NET里面的 Identity 组件库,负责对用户的身份进行认证,总体来说的话,没有MVC 5 里面那么复杂,因为在MVC 5里面引入了OW ...

    2. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

      本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

    3. ABP文档 - 异常处理

      文档目录 本节内容: 简介 启用错误处理 非AJAX请求 显示异常 UserFriendlyException Error 模型 AJAX 请求 异常事件 简介 这个文档针对Asp.net Mvc和W ...

    4. 通过 floating IP 访问 VIP - 每天5分钟玩转 OpenStack(126)

      前面我们是直接用 curl 测试 VIP,在更为真实的场景中通常会使用 floating IP 访问 VIP. 下面我们给 VIP 关联一个 floating IP,再进行测试. 访问 Project ...

    5. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

      第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

    6. VS2015在创建项目时的一些注意事项

      一.下面是在创建一个新的项目是我最常用的,现在对他们一一做一个详细的介绍: 1.Win32控制台应用程序我平时编写小的C/C++程序都用它,它应该是用的最多的. 2.名称和解决方案名称的区别:名称是项 ...

    7. android 事件分发机制详解(OnTouchListener,OnClick)

      昨天做东西做到触摸事件冲突,以前也经常碰到事件冲突,想到要研究一下Android的事件冲突机制,于是从昨天开始到今天整整一天时间都要了解这方面的知识,这才懂了安卓的触摸和点击事件的机制.探究如下: 首 ...

    8. CSS学习笔记

      CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

    9. 【干货分享】流程DEMO-出差申请单

      流程名: 出差申请  业务描述: 员工出差前发起流程申请,流程发起时,会检查预算,如果预算不够,将不允许发起费用申请,如果预算够用,将发起流程,同时占用相应金额的预算,但撤销流程会释放相应金额的预算. ...

    10. Android的Kotlin秘方(I):OnGlobalLayoutListener

      春节后,又重新“开张”.各位高手请继续支持.谢谢! 原文标题:Kotlin recipes for Android (I): OnGlobalLayoutListener 原文链接:http://an ...