重新点亮shell————变量[三]
前言
简单介绍一下shell的变量。
正文
- 变量的定义
变量名的命名规则
字母、数字、下划线
不以数字开头
变量的赋值
在赋值的时候不能出现空格 a =123,在等号前面有一个空格,那么会报错。
这是因为空格之后当做另外一条命令。
然后可以使用let 进行复制,let a=10+20 这个可以进行计算复制。
同样如果想要命令赋值,可以这样 l=ls,那么后面l就表示了ls的意思。
将命令结果赋值给变量,使用$()或者``.
使用let c=$(ls -l /etc)
变量有空格等特殊字符可以包含在""或者''中。
- 变量的引用
例子:
string1="hello word"
echo ${string1}
或者
echo $string1
- 变量的作用范围
变量的作用范围,默认为当前的shell为变量的作用范围。
这里有一个例子,当复制为a=1,然后使用bash,开启了一个子shell,然后发现无法访问a了,说明子shell和父shell不互通变量。
那么如果想两个脚本变量互通怎么办?source x.sh,这样就可以了。
- 系统环境变量
那么如果想让子shell和父shell互通变量怎么办?可以使用export来实现。
export 其实这就全局了的意思了,那么如果用完之后最好unset去删除。
这其实就是环境变量了,那么可以通过env来查看一下。
说起环境变量,那么$Path 是比较重要的,可以自我了解一下。
然后还有一个就是ps1了。
这个就是我们显示的了。
预定义变量: $?、$$、$0
就简单介绍一下这三个。
$? 表示上一条命令是否正确执行,正确的就是0了,其他都是错误的。
$$ 表示当前进程的pid
$0 为当前进程的名称:
位置变量:$1 $2 $3
这些表示的是第几个变量的意思。
然后关于默认值的问题:${2-_}
这个意思是如果2没传的话,那么默认就是_。
- 环境变量配置文件
配置文件有:
/etc/profile
/etc/profile.d/
~/.bash_profile
~/bashrc
/etc/bashrc
这里有很多配置文件,但是这些文件还是有区别的。
比如在etc目录下的,那么就是所有用户通用的了。
那么这里可以看到有profile的,也有没有profile的。
su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。
如果使用,su - [user],那么切换的时候会加载/etc/profile ~/.bash_profile ~/bashrc /etc/bashrc 执行顺序也是如此,这个还是比较关键的,毕竟后面的执行顺序要大于前面的。
如果使用su [user] 那么只会加载~/bashrc /etc/bashrc。
通用需要了解的是当我们修改完配置后,配置是不会立即生效的,如果想让其立即生效,那么可以使用source这个命令,进行重新加载。
结
下一节就介绍具体的语法了。
重新点亮shell————变量[三]的更多相关文章
- Linux Shell系列教程之(三)Shell变量
本文是Linux Shell系列教程的第(三)篇,更多shell教程请看:Linux Shell系列教程 Shell作为一种高级的脚本类语言,也是支持自定义变量的.今天就为大家介绍下Shell中的变量 ...
- 三、Shell变量类型和运算符
一.Shell变量的应用 1.Shell变量的种类 ·用户自定义变量:由用户自己定义.修改和使用 ·预定义变量:Bash预定义的特殊变量,不能直接修改 ·位置变量:通过命令行给 ...
- Linux set、env、declare、export显示shell变量的区别
目录 Linux中 set.env.declare.export显示shell变量的区别 1. shell局部变量 2. 用户的环境变量 显示shell变量 declare 命令 export 命令 ...
- shell变量
定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...
- awk使用shell变量
awk使用shell变量 (可以计算浮点数) 其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time=&qu ...
- Linux shell 变量 数学 运算
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...
- shell变量定义
http://blog.csdn.net/longxibendi/article/details/6125075 set - 读写变量语法:set varName ?value?描述:返回变量varN ...
- 【Shell脚本学习6】Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...
- Shell学习笔记 - Shell变量
一.变量的命名 变量名必须以字母或下划线开头,由字母.数字.或下划线组成,变量名的长度不能超过255个字符. 二.变量的分类 1. 用户自定义变量 2. 环境变量 3. 位置参数变量 4. 预定义变量 ...
- 【转】shell 教程——06 Shell变量:Shell变量的定义、删除变量、只读变量、变量类型
Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编 ...
随机推荐
- 2、hystrix原理
hystrix熔断机制 1.隔离机制 线程隔离: Hystrix在用户请求和服务之间加入了线程池. Hystrix为每个依赖调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队.加速 ...
- 使用 Docker 部署 Answer 问答平台
1)介绍 GitHub:https://github.com/apache/incubator-answer Answer 问答社区是在线平台,让用户提出问题并获得回答.用户可以发布问题并得到其他用户 ...
- java后端数据接收
restful风格 @RequestMapping("/getTeacherPage/{current}/{limit}") public List<WorkOrder> ...
- vscode 点左下角 切换分支 不显示远程分支 git
查看当前分支 git branch -vv 查看所有分支 包含远程分支 git branch -a 放弃merge // 这个很重要 git merge --abort 暂存 git stash 拉取 ...
- 学习笔记-涛讲F#(基础 II)
目录 处理一堆数 组织代码(命名空间.模块) 使用联合重命名类型 类必须显式转换成接口 对象表达式 递归函数 CPS解决堆栈溢出 扩展一个类型 静态解析的类型参数 ref变量的实现原理及应用 F#资源 ...
- ida使用入门指北
静态分析 快捷键 操作 作用 空格键 在反汇编窗口中,进行列表视图与图形视图之间的切换 TAB 在反汇编窗口中,进行汇编指令与伪代码之间的切换 Esc 和 Ctrl+Enter 翻页,返回前一页面 G ...
- HiSi 3516CV500 NNIE(Neural Network Inference Engine) 摸鱼记录(2) --- 模型生成及模型仿真(实例分析)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- Shell 编写摘要 (一)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 解决Idea找不到URL问题
解决Idea找不到URL问题 我这几天遇到一个特别恶心的问题,查了很多资料,都是没用的后来自己静下心来,发现自己的import导包错了,我用的是jakarta,jakarta主要是利用Tomcat ...
- 调试3D渲染和3D可视化的五个好处
建筑和建筑环境是我们日常生活中不可避免的一部分,直接影响我们和我们的福祉.它可以是我们的家.办公室.附近的教堂或城市的商业综合体;所有这一切的设计和规划都是建筑.然而,具有讽刺意味的是,建筑的交流往往 ...