一、什么是Shell 变量

变量用于存储和管理临时的数据, 这些数据都是在运行内存中的;

二、变量的分类

shell中变量大致可以分为下面几类:

  • 系统环境变量
  • 自定义变量
  • 特殊符号变量

系统环境变量

是由系统提供的共享变量。是linux系统加载Shell的配置文件中定义的变量共享给所有的Shell程序使用;

使用 "env" 命令可以查看shell所在的系统环境变量

查看shell变量(系统环境变量+自定义变量+函数)

常用系统环境变量

变量名称 含义
==PATH== 与windows环境变量PATH功能一样,设置命令的搜索路径,以冒号为分割
HOME 当前用户主目录:/root
SHELL 当前shell解析器类型:/bin/bash
==HISTFILE== 显示当前用户执行命令的历史列表文件:/root/.bash_history
PWD 显示当前所在路径:/root
OLDPWD 显示之前的路径
HOSTNAME 显示当前主机名:itheima
HOSTTYPE 显示主机的架构,是i386、i686、还是x86、x64等:x86_64
==LANG== 设置当前系统语言环境:zh_CN.UTF-8

下面随机测试一下输出几个系统环境变量

自定义变量

顾名思义,自定义变量就是用户为了满足使用的方便自定义的一些变量

按照使用范围,自定义变量可按如下分类:

  • 自定义局部变量
  • 自定义常量
  • 自定义全局变量

自定义局部变量

就是定义在一个脚本文件中的变量, 只能在这个脚本文件中使用的变量, 就是局部变量

使用语法规则

var_name=value

定义变量,需要遵循一定的规则:

  1. 变量名称可以有字母,数字和下划线组成, 但是不能以数字开头

  2. 等号两侧不能有空格

  3. 在bash环境中, 变量的默认类型都是字符串类型, 无法直接进行数值运算

  4. 变量的值如果有空格, 必须使用双引号括起来

  5. 不能使用Shell的关键字作为变量名称

看下面的案例

变量使用

${var_name} 进行查询(使用变量);

变量删除

unset var_name

自定义常量

就是变量设置值以后不可修改的变量叫常量, 也叫只读变量,使用语法为: readonly var_name

自定义全局变量

即在当前脚本文件中定义全局变量, 这个全局变量可以在当前Shell环境与子Shell环境中都可以使用

自定义全局变量语法

export var_name1 var_name2

特殊变量

特殊变量在shell编程的某些特殊业务场景下可以发挥意想不到的效果,下面列举几个常用的特殊变量;

特殊变量 :$n

  • 用于接收脚本文件执行时传入的参数
  • $0 用于获取当前脚本文件名称的
  • $1~$9, 代表获取第一输入参数到第9个输入参数
  • 第10个以上的输入参数获取参数的格式: ${数字}, 否则无法获取

执行脚本文件传入参数语法

sh 脚本文件 输入参数1 输入参数2 ...

通过下面的方式输出参数

执行脚本

特殊变量 :$#

获取所有输入参数的个数

基于上面的shell内容简单改造,打印输出参数个数

执行shell,观察结果

特殊变量:$*$@

都是获取所有输入参数, 用于以后输出所有参数

两者的区别

  • 不使用双引号括起来, 功能一样,$*和$@获取所有输入参数,格式为: $1 $2 ... $n
  • 使用双引号括起来,"$*"获取的所有参数拼接为一个字符串, 格式为: "$1 $2 ... $n", "$@"获取一组参数列表对象, 格式为: "$1" "$2" ... "$n"(使用循环打印所有输入参数可以看出区别)

来看下面的shell脚本

执行这个shell脚本,观察输出效果

特殊变量:$?

用于获取上一个Shell命令的退出状态码, 或者是函数的返回值

每个Shell命令的执行都有一个返回值, 这个返回值用于说明命令执行是否成功,一般来说, 返回0代表命令执行成功, 非0代表执行失败;

控制台输入一个正确的命令,然后再使用这个命令就可以看出效果

特殊变量:$$

用于获取当前Shell环境的进程ID号

自定义系统环境变量

当前用户进入Shell环境初始化的时候,会加载全局配置文件/etc/profile里面的环境变量, 供给所有Shell程序使用;

假如要是所有Shell程序或命令使用的变量, 就可以定义在这个文件中;

创建环境变量步骤

1、编辑/etc/profile全局配置文件

增加命令: 定义变量VAR1=VAR1 并导出为环境变量
扩展: vim里面的命令模式使用G快速定位到文件末尾位置, 使用gg定位到文件首行位置

2、重载配置文件/etc/profile, 因为配置文件修改后要立刻加载里面的数据就需要重载

source /etc/profile

3、在Shell环境中读取系统级环境变量VAR1

linux shell 编程之变量总结相关推荐

  1. Linux学习——shell编程之变量

    shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...

  2. linux系统——Shell编程之变量解释

    linux系统--Shell编程之变量解释 - Shell能做什么 自动化批量系统初始化程序 (update,软件安装,时区设置,安全策略-) 自动化批量软件部署程序 (LAMP,LNMP,Tomca ...

  3. Linux Shell 编程学习总结

    Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...

  4. linux实验三shell程序设计,实验三 LINUX SHELL编程

    精选文库 -实验三LINUX SHELL 编程 四.实验内容 本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术.内容如下: 1.创建以下菜单程序: USER ...

  5. linux —— shell 编程(文本处理)

    导读 本文为博文 linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed a ...

  6. Linux shell编程学习总结

    主要内容: shell编程 sed命令 awk命令 crontab定时器 什么是Shell? Shell是用户与内核进行交互操作的一种接口,目前最流行的Shell称为bash Shell Shell也 ...

  7. Linux Shell中的变量-环境变量

    参考:<Linux命令 / 编辑器与Shell编程> ################################################ note that :与其他编程语言 ...

  8. 【“计算机科学与技术”专业小白成长系列】Linux Shell 编程 极简教程

    Linux Shell 编程 极简教程 内容摘要 本文是 Linux Shell 编程简单入门.主要内容: Linux 简介 Shell 编程入门 Kotlin 脚本与 Shell 脚本 Linux ...

  9. 《Linux Shell编程从初学到精通(第2版)》pdf

    下载地址:网盘下载 内容简介 编辑 shell是用户与内核进行交互操作的一种接口,是linux最重要的软件之一.目前最流行的shell称为bash shell,bash shell脚本编程以其简洁.高 ...

  10. linux简单重定向代码,Linux Shell编程(26)——代码块重定向

    像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 .所有的这些依靠代码块结尾的 < ...

最新文章

  1. 【深度学习】上海交大发布 MedMNIST 医学图像分析数据集 新基准
  2. vml入门教程 【转】
  3. 定义水果和方法的java代码_命名水果的两列上的自定义聚合
  4. matlab 整数规划工具箱,Matlab中的YALMIP工具箱 混合整数规划
  5. java websocket 后台服务器_Unity3D与Java后台TomCat服务器传递数据和文件(1)建立Java服务器...
  6. CentOS6.8下安装xz命令
  7. 小白初解Linux基础相关
  8. LeetCode 48 旋转图像
  9. VS2015 关闭错误列表
  10. Ubuntu 14.04安装LAMP(Linux,Apache,MySQL,PHP)
  11. 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
  12. One More Check: Making “Fake Background” Be Tracked Again
  13. mac nginx php-fpm,Mac OS nginx 502 解决记录(php-fpm 启动失败)
  14. Bat 脚本学习 (基础篇)
  15. 涉密计算机杀毒记录表,保密工作自检自查记录表
  16. monty python and the holy grail_monty python and the holy grail - 百度学术
  17. H3C--网络设备基本配置与调试
  18. # 团队项目测评博客
  19. VMware Workstation pro无法在Windows上运行,检查可在Windows上运行的此应用的更新版本(无需卸载原先版本或原先版本卸载的按钮变成灰色)
  20. 音频多声道数据的操作

热门文章

  1. VUE集成Office插件NTKO
  2. 数据库大作业预览-教室管理系统
  3. Iper3打流时所支持的UDP协议是真的UDP吗?
  4. 《机器视觉算法与应用》第3章 机器视觉算法之形态学——学习笔记
  5. yosemite php gd,Yosemite/El Capitan php-gd mcrypt安装
  6. jsp项目如何定位当前页面是哪个jsp
  7. html5中webSql的应用
  8. spss安装后 python_python从入门到入土教程(7)——用python实现SPSS的各种功能
  9. vs2017官方下载路径
  10. 捕鱼达人 FishMaster 记录(Done)