linux 指令引用变量,Linux之变量引用与命令替换
在bash脚本编写中,我们时常需要引用变量与替换命令,为规范操作,现对其做简单的总结说明。
引用
引用就是指将字符串用引用符号括起来,以防止特殊字符被shell脚本解释为其他意义。引用时屏蔽特殊字符的特殊意义,而将其解释为字面意义。
引用符、名称、意义说明表引用符名称意义说明
''单引号称全引用或弱引用,引用所有的字符;单引号中字符除单引号本身之外都解释为字面意义,单引号不具备引用变量的功能。。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外。
""双引号称部分引用或强引用,引用除美元符号($)、反引号(`)和反斜线(\)之外的所有字符。即在双引号中保持美元符号($)、反引号(`)和反斜线(\)符号的特殊含义,如"$变量名"表示以变量值替换变量名。利用双引号引用变量能够防止字符串分割,保留变量中的空格。
``反引符shell把反引符中的内容解释为系统命令
\反斜杠转意符,屏蔽下一个字符的特殊意义,Linux常用的特殊字符有$、*、`、+、^、&、|、"、?
举例:[root@CentOS6 tmp]# test="x y z";echo '$test'
[root@CentOS6 tmp]# $test #不会转意,单引号只把其里面的字符的字面意义直接进行输出
[root@CentOS6 tmp]# test="x y z";echo $test
[root@CentOS6 tmp]#xyz #引用变量值,但不保留变量中的空格
[root@CentOS6 tmp]#test="x y z";echo “$test”
[root@CentOS6 tmp]#x y z #引用变量值,并保留变量中的空格
注意:一个变量的值可以作为某个长字符串中的一部分.如果它在长字符串的末尾,就可直接引用,如果在开头或中间,应该用花括号将该变量括起来。
举例:[root@CentOS6 tmp]# test="xyz";echo test$test
[root@CentOS6 tmp]# testxyz#正常输出
[root@CentOS6 tmp]# test="xyz";echo $testtest
[root@CentOS6 tmp]# #不会有任何输出,因shell会去引用变量testtest的值,可该变量并没有定义赋值
[root@CentOS6 tmp]# test="xyz";echo ${test}test
[root@CentOS6 tmp]# xyztest #正常输出
命令替换
命令替换是指将命令的标准输出作为值赋给某个变量,bash Shell定义了两种形式进行命令的替换,两种形式的语法格式如下:
方式一: `Linux命令`
方式二: $(Linux命令)
举例:[root@CentOS6 tmp]# echo `pwd`
[root@CentOS6 tmp]# /tmp#引用pwd命令的执行结果并输出
注意:尽管$()和反引号在命令替换上是等价的,但是,$()形式的命令替换是可以嵌套的。
bash Shell中,反引号与$()在处理双反斜线符号时存在区别。
[root@CentOS6 tmp]#echo \\
[root@CentOS6 tmp]#\ #输出转义符
[root@CentOS6 tmp]#echo `echo \\`
[root@CentOS6 tmp]# #输出空白行
[root@CentOS6 tmp]##echo $(echo \\)
[root@CentOS6 tmp]#\ #输出单斜线
linux 指令引用变量,Linux之变量引用与命令替换相关推荐
- Linux指令详解(Linux入门博文)
文章目录 1.命令知识基础 2.基本命令的学习 2.1 ls指令 2.2 pwd命令 2.3 cd指令 2.4 touch指令 2.5 mkdir指令 2.6 rm指令 2.7 rmdir指令 2.8 ...
- 重要linux指令的使用,Linux必学的重要命令
tar 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar[主选项 辅选项]文件或目录 3.主要参数 使用该命 ...
- linux远ssh sed,ssh远程执行sed -i命令,替换的内容中含有双引号的问题
ssh远程执行sed -i命令,替换的内容中含有双引号的问题.在ssh 中执行sed -i 来替换匹配的字符串,当替换的内容中包含双引号"时,需要在转义的同时,加上单引号'"'. ...
- linux指令英文含义,Linux —— 常见指令及其英文全称
alias:给命令起别名 awk = "Aho Weiberger and Kernighan" ,三个作者的姓的第一个字母 bash:GNU Bourne-Again Shell ...
- linux指令与数据库,Linux指令每日背诵(第一天)
了解:Linux 命令的分类:内部指令.外部指令. Shell 在用户和内核之间充当了"翻译官"的角色. 掌握:四种指令方式:1.命令字:2.命令字+选项:3.命令之+参数:4.命 ...
- linux指令ls -1,linux命令1--ls
ls就是list的缩写,用来查看文件夹下的文件信息,这里介绍几个常用的实例. 1 根据ctime(文件最后更改时间)来排序文件夹下所有文件, ls -lct 2 显示所有文件,-g不显示文件所有者, ...
- linux指令grep语法,Linux grep 命令详解
Grep 是 Global Regular Expression Print 的缩写,它搜索指定文件的内容,匹配指定的模式,默认情况下输出匹配内容所在的行.注意,grep 只支持匹配而不能替换匹配到的 ...
- Linux指令和对应的英文全称,Linux单横杠和双横杠的区别
1.linux单横杠 双横杠的区别 其实不叫横杠,是叫hyphen连字符. -,单个连字符跟的是多个单字符参数,--,双连字符跟的是单个多字符参数 想想这设计也是巧妙,如果不区分的话,写在一起几个字母 ...
- linux笔记:MOOC Linux开发环境及应用
文章目录 1. linux入门 1.1 实用程序 1.2 了解系统状态 2. 正则表达式 2.1 元字符 2.2 正则表达式拓展 2.3 常用命令 3. 文件编辑 3.1 vim常用操作 3.2 常见 ...
最新文章
- AT2370 Piling Up
- Puppet 4 性能提升超2倍,升级前应该你知悉的变化
- 无需数据线,在Windows电脑上就可以浏览和编辑华为的手机文件
- 把程序显示在最前面 delphi_地球程序员之神:没上过大学,曾拒盖茨的Offer,4代码农靠他吃饭...
- [zz]NoSQL对比:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j
- 高通驱动9008安装_高通snapdragon888的性能有多强大
- 【linux基础】关于ARM板子使用O3编译选项优化
- 信息学奥赛一本通(1210:因子分解)
- Linux之硬件资源管理
- 机器学习入门笔记总目录
- 【15年浙江省赛 C ZOJ 3871】Convex Hull【极角排序】
- 力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.3.3 3.4.1企业版/旗舰版框架
- 【js】碰到了Flash与extjs冲突无法输入中文解决办法。
- 人人商城小程序 java版_人人商城小程序用户授权问题
- VUE和Element-UI下拉框select实现拼音,中文搜索
- 自我学习从阅读和记录开始
- PTA乙级【1013 数素数 (20分)】注意第四个测试点
- IntelliJ IDEA有些快捷键无法使用的解决方式
- “豫”见超融合,私有云浪潮开启新一线
- 0基础学Java(2)
热门文章
- oracle linux6 u盘安装,U盘安装RHEL6
- 快速排序的原理以及Java代码
- 小程序·云开发的HTTP API调用丨实战
- mysql函数(五.流程控制函数)
- Linux之Ubuntu安装搜狗输入法
- 基于用户击键特征的身份鉴别系统
- mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword...
- Oracle中用rownum替代Top函数的方法
- [Ubuntu] Simple way to pass passwords on a shell script
- twrp3.3.0刷n9002_插画师必备笔刷,送你5套iPad5.0新出300款大神笔刷