Linux Shell基础篇——变量
一、Shell中的变量
注:这里所说的Shell是Bash Shell,我姑且统称为Shell。
Shell中的变量分为用户自定义变量、环境变量、位置参数变量、预定义变量。在Shell中,变量的默认类型都是字符串型的,如果要进行数值运算,则必须指定变量类型为数值型。
(1)一些注意事项
变量命名可以由字母、下划线和数字组成,但不能以数字开头,变量名严格区分大小写。
变量用等号(=)赋值,等号左右两侧不能有空格。
变量的值如果有空格,需要使用单引号或双引号包括。可以在变量值中使用转义符"\"。
如果需要增加变量的值,那么可以进行变量值的叠加。此时需要用双引号,即"$变量名"或用${变量名}的方式使用。
如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。如果使用变量进行数学运算,则可以使用expr命令或$[]将数学表达式包含起来。
环境变量名建议大写,便于区分。
(2)名词解释
用户自定义变量:顾名思义,就是用户自己定义的变量。
环境变量:用来存储有关shell会话和工作环境或操作系统环境的信息。环境变量的这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们,一次定义,任何shell脚本都可以访问。环境变量有分为两类,全局环境变量和局部环境变量。全局环境变量对于当前shell和其所有生成的子shell都是可见的。局部环境变量则只对创建它们shell可见。
位置参数变量:顾名思义,这种变量根传递参数的位置有关。变量名不能自定义。
预定义变量:是shell已经定义好的变量,变量名不能自定义,变量的作用都是不变的。
Linux Shell基础篇——变量的更多相关文章
- Linux Shell基础 环境变量配置文件
source命令:使环境变量配置文件强制生效 source 命令会强制执行脚本中的全部命令,而忽略脚本文件的权限.该命令主要用于让重新配置的环境变量配置文件强制生效.source 命令格式如下: [r ...
- Linux Shell基础 位置参数变量、预定义变量
位置参数变量 在 Linux 的命令行中,当一条命令或脚本执行时,后面可以跟多个参数,我们使用位置参数变量来表示这些参数.其中,$0 代表命令行本身,$1 代表第 1 个参数,$2 代表第 2 个参数 ...
- Linux Shell基础 环境变量
环境变量 环境变量和用户自定义变量最主要的区别在于,环境变量是全局变量,而用户自定义变量是局部变量.用户自定义变量只在当前的 Shell 中生效,而环境变量会在当前 Shell 和这个 Shell 的 ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- linux shell 基础 使用日志与心得
linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- linux shell脚本之-变量极速入门与进阶(1)
1,如果创建shell脚本? 使用任意文本编辑软件,一般为vim,创建.sh结尾的文件,在文件的最开头用 #!/bin/bash 注明shell的类型 如: ghostwu@dev:~/linux/s ...
- Linux入门基础篇
Linux入门基础篇 Linux诞生 Linux发行版本说明 Linux官方网站 Linux内核官方网站 比较有名的Linux发行版 虚拟机(Virtual Machine),一个虚拟的系统,安装在系 ...
随机推荐
- SCOI2014极水的题解- -
话说SCOI都考了1个月了,终于拿出决心把题解补完了,但都说了是极水的题解,大家就看着玩吧- - DAY1 T1:目标是找最长不降子序列,先就有一个比较显然的结论,就是假如我们要拔高区间[L, R], ...
- apue.3e 的安装 (基于ubuntu12.0.4)
本菜刚刚学习UNIX下高级编程,无奈搭建本书编程环境时遇到不少问题.幸好网上有各种大神的解决办法让我最终解决了问题.在这里感谢为LINUX开源操作系统奋斗的大神. 不过话说回来,网上大都是针对UNIX ...
- 【learning】中国剩余定理
问题描述 "今有物不知其数,三三数之余二,五五数之余三,七七数之余二.问物几何?" emmm这是..最开始这个问题被提出来的描述 其实说白了就是求解一次同余式组 然后还可以..解决 ...
- oracle 时间
select to_char(to_date(sysdate,'yyyy-mm-dd'),'day') from dual; select to_date('2017-12-31','day') fr ...
- Mysql千万级大表优化策略
1.优化sql以及索引 1.1优化sql 1.有索引但未被用到的情况(不建议) (1)避免like的参数以通配符开头时 尽量避免Like的参数以通配符开头,否则数据库引擎会放弃使用索引而进行全表扫描. ...
- 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 ...
- Qt ------ 设置透明度
void setWindowOpacity(qreal level); //设置所有控件的不透明度 setAttribute(Qt::WA_TranslucentBackground); // ...
- expect 批量增加用户及配置密码
start.sh #!/bin/bash password="111111" username="test" if [ $# == 1 ] then usern ...
- Eclipse错误笔记!
1.ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2 JDWP exit error ...
- codevs 1029 遍历问题
1029 遍历问题 http://codevs.cn/problem/1029/ 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 我们都很熟悉二叉树的 ...