Linux变量分类(全)
局部变量:当前代码段内生效
案例演示:函数内,用local修饰的变量就是局部变量。
function func(){local a=99}
本地变量:当前bash进程中有效
案例演示:
[root@docker01 ~]# A=111
[root@docker01 ~]# echo $A
111
环境变量:当前用户的bash进程及其子进程中生效,切换用户后失效。
1、临时环境变量。
相关语法:
查看:
env 查看当前用户的环境变量
set 查询当前用户的所有变量(临时变量与环境变量)
创建:
export `变量名=变量值` 或者 `变量名=变量值;export 变量名`
案例演示:
[root@docker01 ~]# export B=BBB
[root@docker01 ~]# echo $B
BBB
[root@docker01 ~]# psPID TTY TIME CMD2334 pts/0 00:00:00 bash7666 pts/0 00:00:00 ps
[root@docker01 ~]# /bin/bash
[root@docker01 ~]# psPID TTY TIME CMD2334 pts/0 00:00:00 bash7667 pts/0 00:00:00 bash7699 pts/0 00:00:00 ps
[root@docker01 ~]# ps auxf|grep bash
root 2334 0.0 0.1 116336 3004 pts/0 Ss Jan18 0:00 | \_ -bash
root 7667 0.1 0.1 116324 2780 pts/0 S 05:29 0:00 | \_ /bin/bash
root 7714 0.0 0.0 112812 976 pts/0 S+ 05:29 0:00 | \_ grep --color=auto bash
[root@docker01 ~]# echo $B
BBB
2、永久环境变量。
在环境变量脚本文件中配置,该用户每次登录时会自动执行这些脚本,相当于永久生效。
相关语法:
$HOME/.bashrc 当前用户的bash信息,用户登录时读取 定义别名、umask、函数等
$HOME/.bash_profile 当前用户的环境变量,用户登录时读取
$HOME/.bash_logout 当前用户退出当前shell时最后读取 定义用户退出时执行的程序等
全局变量:所有的用户和程序都能调用
相关语法:
/etc/bashrc 全局的bash信息,所有用户都生效
/etc/profile 全局环境变量信息 系统和所有用户都生效
系统变量:系统定义好的一些变量
例如:
内置变量 | 含义 |
---|---|
$? | 上一条命令执行后返回的状态;状态值为0表示执行正常,非0表示执行异常或错误 |
$0 | 当前执行的程序或脚本名 (./02.sh) |
$# | 脚本后面接的参数的个数 3个 |
$* | 脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开 (参数数组a b c) |
$@ | 脚本后面所有参数,参数是独立的,也是全部输出 (参数数组a b c) |
$1~$9 | 脚本后面的位置参数,$1表示第1个位置参数,依次类推 |
${10}~${n} | 扩展位置参数,第10个位置变量必须用{}大括号括起来(2位数字以上扩起来) |
$$ |
当前所在进程的进程号,如echo $$
|
$! | 后台运行的最后一个进程号 测试: sleep 400 &(后台运行)/sleep 400(ctrl+z 暂停运行), 再运行jobs, 查看当前进程的后台子进程. |
!$ | 调用最后一条命令历史中的参数 |
注意:
对于全局变量和永久环境变量,用户登录系统后, 相关文件的加载顺序:
1、/etc/profile
2、$HOME/.bash_profile
3、$HOME/.bashrc
4、/etc/bashrc
5、$HOME/.bash_logout
Linux变量分类(全)相关推荐
- Linux 环境变量配置全攻略
Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...
- Linux环境变量配置全攻略
本文转载自: Linux环境变量配置全攻略 - 悠悠i - 博客园 目录 Linux环境变量配置 Linux读取环境变量 Linux环境变量配置方法一:export PATH Linux环境变量配置方 ...
- synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标)
synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标) 标签: windowslinuxkeyboard服务器测试 2011-11-26 14:51 6882人阅读 评论( ...
- 【Java2】一维数组,家庭收支界面,/属性和方法,方法重载,变量分类,可变参数,包
文章目录 1.一维数组:int[ ] a = { } 1.1 数组的内存分析(静态):数组名=首地址 1.2 数组的内存分析(动态):元素默认值 1.3 数组相关算法: 1.3.1 找最值:array ...
- ceph存储原理_赠书 | Linux 开源存储全栈详解——从Ceph到容器存储
// 留言点赞赠书我有书,你有故事么?留言说出你的存储故事留言点赞前两名,免费送此书截止日期12.27号12.30号公布名单 // 内容简介 本书致力于帮助读者形成有关Linux开源存储世界的细致的拓 ...
- Linux操作命令分类详解 - 用户权限(三)
转自:Linux操作命令分类详解 - 用户权限(三),更优阅读体验:http://www.kongzid.com/ 目录 系列文章 1.用户账号管理 1.1 useradd/adduser 添加用户账 ...
- linux中vim的全拼,linux常用命令全拼
原标题:linux常用命令全拼 命令缩写 pwd:print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windo ...
- .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus)
在前两篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) 我们对. ...
- linux下版图设计,Linux系统安装及全定制版图设计基础.ppt
Linux系统安装及全定制版图设计基础 Ningbo University Chap.12 Linux系统安装及全定制版图设计基础 (1) Outline Linux介绍(安装.使用简介) Caden ...
最新文章
- 一步步玩pcDuino3--mmc下的裸机流水灯
- Java 序列化Serializable详解(附详细例子)
- python 比较列表相邻元素(找相同或去重)
- linux终端命令教程,Linux终端命令入坑技巧
- STM32 map文件解析
- 基于Spring boot,使用idea方便地切换启动环境
- 拼图项目:一个不完整的难题
- 5000字权威指南分享!企业如何正确制定 IT 战略及其路线图
- yolo mark的使用(转)
- knn算法python代码_在python中使用KNN算法处理缺失的数据
- Erlang 二十年,如何在编程语言中占据一席之地?
- 苹果自研基带野心不死:给高通300多亿后,正洽购英特尔调制解调器业务
- Virtualization API之libvirt
- 计算机bios设置系统安装教程,U盘装系统BIOS设置教程进行设置图文教程
- 一张模板替代数百Excel,这个工具让报表工作自动进行
- esxi php,ESXi虚拟机安装8168/8111网卡
- 定时备份网站数据文件到阿里网盘
- 计算机专业术语,收藏用
- IC卡,ID卡,M1卡等各种卡扫盲篇
- 六轴机器人直角坐标系建立_工业机器人六种坐标系详解(图)