轻松理解Shel脚本中的变量(一)
1.变量的定义
1)定义本身
变量就是内存一片区域的地址
2)变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题
2.shell脚本中变量的定义方法
由上面我们可以看出三种执行脚本的方法只有source的方法可以看出效果,因为source方法是在当前shell执行脚本,sh 和 /mnt/test.sh的方法会打开一个新的子 shell,不在当前环境,所以不能执行出 a 的内容。
1)环境级别,在当前环境生效
export a=1 export:让子进程可以访问父进程的变量。
在环境关闭后或更换环境后变量失效,生命周期短。如:
开启一个新的 shell 执行内容又显示不出来。
2)用户级别,在当前用户生效
每个用户的家目录下都有一个这样的文件,定义当前用户的环境配置。
vim ~/.bash_profile
export a=1
source ./bash_profile source调用后才可以生效
当我们切换用户后:
无法执行出内容
3)系统级别,在当前系统生效
vim /etc/profile
最后一行加上 export a=2
当我们切换至thermal 用户时,显示的a的值竟然为1,这是因为系统默认读取的文件顺序为
全局设定----->用户设定,所以在读取用户的设定时覆盖了全局设定,需重新source才可以使用全局设定,具体操作如下图。
————————
我们也可以编辑 /etc/profile.d/ 底下的文件来设定
vim /etc/profile.d/westos.sh
export b=3
重新打开一个shell后,依然生效。
4)变量名称的设定。
模式:
"字符" "_" "数字" 不能用数字开头
建议:
变量名称短全用大写字符
变量名称长用_区分子类
例如:
WESTOS 全部大写
Westos_Linux 波型
westoS_Linux 峰型
3.变量的转译
1)转译
\ 转译单个字符
"" 弱引用,批量转译个数字符 不能转译 "\" "`" "$" "!"
'' 强引用
2)声明变量
a=1
echo $ab
echo ${a}b
声明了a是变量b不是
3)变量的数组
{} 为声明变量,[ ] 是变量的下标,默认从0开始,0是数组的第一个字符,1是第二个。
a=(1 2 3 4 5)
echo ${a[0]} 显示第一个
echo ${a[-1]} 显示最后一个
echo ${a[*]} 显示所有的内容,但是视为一个整体
echo ${a[@]} 显示所有内容,视为单个单个的字符
编写脚本测试 @ 和 * 的区别
@执行了三次
*只执行了一次,将123视为一个整体。
4.Linux中命令的别名设定
这是系统中已经定义过的别名。
alias cc='vim' 临时设定,新环境中不生效
vim ~/.bashrc 只针对当前用户生效
source ~/.bashrc
alias cc=‘vim’
在新的环境中也生效了。
但是切换用户后失效。
vim /etc/bashrc 针对系统所有用户生效
source /etc/bashec
alias cc=‘vim’
所有用户都可以用cc执行vim命令。
unalias cc ##删除当前环境中的alias
轻松理解Shel脚本中的变量(一)相关推荐
- shell脚本中的变量
shell脚本中的变量 1 变量的定义 2 shell脚本中变量的定义方法 2.1 环境级别 2.2 用户级别 2.3 系统级别 3 变量名称 4 变量的转译 4.1 转译 4.2 声明 4.3 变量 ...
- 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量
2019独角兽企业重金招聘Python工程师标准>>> 20.1 Shell脚本介绍 • shell是一种脚本语言 aming_linux blog.lishiming.net ...
- Linux:shell脚本中实现变量自增的几种方式
#!/bin/sh #本脚本测试shell脚本中整型变量自增 加1的几种方法 #定义整型变量 a=1 echo $a #第一种整型变量自增方式 a=$(($a+1)) echo $a #第 ...
- linux 引用其它脚本中的变量
前言 CentOS Linux release 7.9.2009 (Core) 引用其它脚本中的变量 a.sh var_a=zhangsan echo $var_a b.sh source a.sh ...
- 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...
2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...
- shel脚本中怎么引用文件_Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件...
标签: 配置文件如下 ##########BACKUP MYSQL CONFIG####### #database name db_name=test db_user=root db_pass=123 ...
- pwd赋值给变量 shell_Shell脚本中的变量详解
一.Shell变量 变量:是shell传递数据的一种方式,用来代表每个取值的符号名. 当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中. 二.变量设置规则: 变量名 ...
- unity如何调用另一个脚本中的变量
调用其他实例的脚本是一种很常用的需求,在Unity3D中实现起来也有多种方法,假设在ScriptB有一个DoSomething函数,如下所示: using UnityEngine; public cl ...
- sed在shell脚本中引用变量
需求 在测试过程中,有很多配置项是写在文件中的,这时想通过脚本来改文件内容,这是个很常见的需求 问题 sed 是linux里很强大好用的文本修改工具,但是在使用过程中,需要在shell里的sed语句中 ...
- 详解shell脚本中的变量
目录 一.变量的定义及存在的意义 二.shell脚本中变量的定义方法 1.环境级别 2.用户级别 3.系统级别 三.变量名称 四.变量的转译 1.转译 2.声明 3.变量的数组 五. Linux中命令 ...
最新文章
- 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务
- Spring3基于注释驱动的AOP
- python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
- Myeclipse的破解步骤
- python列表写入csv文件_将多个列表写入csv。Python中的文件
- java内部类选择题_java内部类详解(附相关面试题)
- 花痴流口水颜文字_流口水可执行模型
- 编译安装时的--prefix参数的使用方法,很实用,mark一下
- Ubuntu gerrit 安装配置
- java day49【综合案例day01】
- python简易中文名转英文小程序
- 使用Python进行数据关联分析
- Box2D 中文手册
- HBuilder webApp开发(十)在线差异化升级
- [转]Facebook 开源的快速文本分类器 FastText
- 【18】CSS基础(3)——理解层叠式
- springboot和springMVC
- ubuntu(18.04)磁盘空间不足导致问题:bash: 无法为立即文档创建临时文件: 设备上没有空间(按tab键无法自动补全)
- matlab如何均匀分布,[转载]【MATLAB】高斯分布 均匀分布 以及其他分布 的随机数生成函数...
- 【微信小程序入门到精通】— 事件绑定的详细解读