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脚本中的变量(一)相关推荐

  1. shell脚本中的变量

    shell脚本中的变量 1 变量的定义 2 shell脚本中变量的定义方法 2.1 环境级别 2.2 用户级别 2.3 系统级别 3 变量名称 4 变量的转译 4.1 转译 4.2 声明 4.3 变量 ...

  2. 7月11日任务 shell介绍、shell结构和执行 、date命令用法、shell脚本中的变量

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 Shell脚本介绍 • shell是一种脚本语言  aming_linux  blog.lishiming.net ...

  3. Linux:shell脚本中实现变量自增的几种方式

    #!/bin/sh #本脚本测试shell脚本中整型变量自增 加1的几种方法   #定义整型变量 a=1 echo $a   #第一种整型变量自增方式 a=$(($a+1)) echo $a   #第 ...

  4. linux 引用其它脚本中的变量

    前言 CentOS Linux release 7.9.2009 (Core) 引用其它脚本中的变量 a.sh var_a=zhangsan echo $var_a b.sh source a.sh ...

  5. 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量...

    2019独角兽企业重金招聘Python工程师标准>>> 20.1 shell脚本介绍 shell 是一种脚本语言:和传统的开发语言比较,会比较简单 shell有自己的语法:可以使用逻 ...

  6. shel脚本中怎么引用文件_Linux shell脚本中如何读取跟shell脚本同一目录下的配置文件...

    标签: 配置文件如下 ##########BACKUP MYSQL CONFIG####### #database name db_name=test db_user=root db_pass=123 ...

  7. pwd赋值给变量 shell_Shell脚本中的变量详解

    一.Shell变量 变量:是shell传递数据的一种方式,用来代表每个取值的符号名. 当shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中. 二.变量设置规则: 变量名 ...

  8. unity如何调用另一个脚本中的变量

    调用其他实例的脚本是一种很常用的需求,在Unity3D中实现起来也有多种方法,假设在ScriptB有一个DoSomething函数,如下所示: using UnityEngine; public cl ...

  9. sed在shell脚本中引用变量

    需求 在测试过程中,有很多配置项是写在文件中的,这时想通过脚本来改文件内容,这是个很常见的需求 问题 sed 是linux里很强大好用的文本修改工具,但是在使用过程中,需要在shell里的sed语句中 ...

  10. 详解shell脚本中的变量

    目录 一.变量的定义及存在的意义 二.shell脚本中变量的定义方法 1.环境级别 2.用户级别 3.系统级别 三.变量名称 四.变量的转译 1.转译 2.声明 3.变量的数组 五. Linux中命令 ...

最新文章

  1. 在Ubuntu 12.04 64bit上搭建Crtmpserver视频点播服务
  2. Spring3基于注释驱动的AOP
  3. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
  4. Myeclipse的破解步骤
  5. python列表写入csv文件_将多个列表写入csv。Python中的文件
  6. java内部类选择题_java内部类详解(附相关面试题)
  7. 花痴流口水颜文字_流口水可执行模型
  8. 编译安装时的--prefix参数的使用方法,很实用,mark一下
  9. Ubuntu gerrit 安装配置
  10. java day49【综合案例day01】
  11. python简易中文名转英文小程序
  12. 使用Python进行数据关联分析
  13. Box2D 中文手册
  14. HBuilder webApp开发(十)在线差异化升级
  15. [转]Facebook 开源的快速文本分类器 FastText
  16. 【18】CSS基础(3)——理解层叠式
  17. springboot和springMVC
  18. ubuntu(18.04)磁盘空间不足导致问题:bash: 无法为立即文档创建临时文件: 设备上没有空间(按tab键无法自动补全)
  19. matlab如何均匀分布,[转载]【MATLAB】高斯分布 均匀分布 以及其他分布 的随机数生成函数...
  20. 【微信小程序入门到精通】— 事件绑定的详细解读

热门文章

  1. 骑士精神 (迭代加深)
  2. 第七周助教工作总结——NWNU李泓毅
  3. 什么是HTML? 看这一篇就够了(附带主流IDE推荐)
  4. javascript中的Strict模式
  5. requests使用cookie模拟登陆豆瓣
  6. iphone和ipad的一些区别
  7. CentOS 7.5 安装MySQL教程
  8. POJ - 1733 带权并查集 模运算 利用map进行离散化 题目没看全导致疯狂WA
  9. mysql 类似oracle dual_MySQL类似Oracle的dual虚拟表
  10. 国美易卡有序实现索引,国美易卡B+树方便区间查找