一、Shell中的变量

  注:这里所说的Shell是Bash Shell,我姑且统称为Shell。

  Shell中的变量分为用户自定义变量、环境变量、位置参数变量、预定义变量。在Shell中,变量的默认类型都是字符串型的,如果要进行数值运算,则必须指定变量类型为数值型。

  (1)一些注意事项

    变量命名可以由字母、下划线和数字组成,但不能以数字开头,变量名严格区分大小写。

    变量用等号(=)赋值,等号左右两侧不能有空格。

    变量的值如果有空格,需要使用单引号或双引号包括。可以在变量值中使用转义符"\"。

    如果需要增加变量的值,那么可以进行变量值的叠加。此时需要用双引号,即"$变量名"或用${变量名}的方式使用。

    如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。如果使用变量进行数学运算,则可以使用expr命令或$[]将数学表达式包含起来。

    环境变量名建议大写,便于区分。

  (2)名词解释

    用户自定义变量:顾名思义,就是用户自己定义的变量。

    环境变量:用来存储有关shell会话和工作环境或操作系统环境的信息。环境变量的这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们,一次定义,任何shell脚本都可以访问。环境变量有分为两类,全局环境变量和局部环境变量。全局环境变量对于当前shell和其所有生成的子shell都是可见的。局部环境变量则只对创建它们shell可见。

    位置参数变量:顾名思义,这种变量根传递参数的位置有关。变量名不能自定义。

    预定义变量:是shell已经定义好的变量,变量名不能自定义,变量的作用都是不变的。

    

Linux Shell基础篇——变量的更多相关文章

  1. Linux Shell基础 环境变量配置文件

    source命令:使环境变量配置文件强制生效 source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限.该命令主要用于让重新配置的环境变量配置文件强制生效.source 命令格式如下: [r ...

  2. Linux Shell基础 位置参数变量、预定义变量

    位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...

  3. Linux Shell基础 环境变量

    环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...

  4. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  5. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  6. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...

  7. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  8. linux shell脚本之-变量极速入门与进阶(1)

    1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...

  9. Linux入门基础篇

    Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...

随机推荐

  1. SCOI2014极水的题解- -

    话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- - DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], ...

  2. apue.3e 的安装 (基于ubuntu12.0.4)

    本菜刚刚学习UNIX下高级编程,无奈搭建本书编程环境时遇到不少问题.幸好网上有各种大神的解决办法让我最终解决了问题.在这里感谢为LINUX开源操作系统奋斗的大神. 不过话说回来,网上大都是针对UNIX ...

  3. 【learning】中国剩余定理

    问题描述 "今有物不知其数,三三数之余二,五五数之余三,七七数之余二.问物几何?" emmm这是..最开始这个问题被提出来的描述 其实说白了就是求解一次同余式组 然后还可以..解决 ...

  4. oracle 时间

    select to_char(to_date(sysdate,'yyyy-mm-dd'),'day') from dual; select to_date('2017-12-31','day') fr ...

  5. Mysql千万级大表优化策略

    1.优化sql以及索引 1.1优化sql 1.有索引但未被用到的情况(不建议) (1)避免like的参数以通配符开头时 尽量避免Like的参数以通配符开头,否则数据库引擎会放弃使用索引而进行全表扫描. ...

  6. Codeforces Round #286 (Div. 2) B 并查集

    B. Mr. Kitayuta's Colorful Graph time limit per test 1 second memory limit per test 256 megabytes in ...

  7. Qt ------ 设置透明度

    void setWindowOpacity(qreal level);   //设置所有控件的不透明度 setAttribute(Qt::WA_TranslucentBackground);   // ...

  8. expect 批量增加用户及配置密码

    start.sh #!/bin/bash password="111111" username="test" if [ $# == 1 ] then usern ...

  9. Eclipse错误笔记!

    1.ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2   JDWP exit error ...

  10. codevs 1029 遍历问题

    1029 遍历问题 http://codevs.cn/problem/1029/  时间限制: 1 s  空间限制: 128000 KB     题目描述 Description 我们都很熟悉二叉树的 ...