在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之变量引用与命令替换相关推荐

  1. 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 ...

  2. 重要linux指令的使用,Linux必学的重要命令

    tar 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar[主选项 辅选项]文件或目录 3.主要参数 使用该命 ...

  3. linux远ssh sed,ssh远程执行sed -i命令,替换的内容中含有双引号的问题

    ssh远程执行sed -i命令,替换的内容中含有双引号的问题.在ssh 中执行sed -i 来替换匹配的字符串,当替换的内容中包含双引号"时,需要在转义的同时,加上单引号'"'. ...

  4. linux指令英文含义,Linux —— 常见指令及其英文全称

    alias:给命令起别名 awk = "Aho Weiberger and Kernighan" ,三个作者的姓的第一个字母 bash:GNU Bourne-Again Shell ...

  5. linux指令与数据库,Linux指令每日背诵(第一天)

    了解:Linux 命令的分类:内部指令.外部指令. Shell 在用户和内核之间充当了"翻译官"的角色. 掌握:四种指令方式:1.命令字:2.命令字+选项:3.命令之+参数:4.命 ...

  6. linux指令ls -1,linux命令1--ls

    ls就是list的缩写,用来查看文件夹下的文件信息,这里介绍几个常用的实例. 1 根据ctime(文件最后更改时间)来排序文件夹下所有文件, ls -lct 2 显示所有文件,-g不显示文件所有者, ...

  7. linux指令grep语法,Linux grep 命令详解

    Grep 是 Global Regular Expression Print 的缩写,它搜索指定文件的内容,匹配指定的模式,默认情况下输出匹配内容所在的行.注意,grep 只支持匹配而不能替换匹配到的 ...

  8. Linux指令和对应的英文全称,Linux单横杠和双横杠的区别

    1.linux单横杠 双横杠的区别 其实不叫横杠,是叫hyphen连字符. -,单个连字符跟的是多个单字符参数,--,双连字符跟的是单个多字符参数 想想这设计也是巧妙,如果不区分的话,写在一起几个字母 ...

  9. linux笔记:MOOC Linux开发环境及应用

    文章目录 1. linux入门 1.1 实用程序 1.2 了解系统状态 2. 正则表达式 2.1 元字符 2.2 正则表达式拓展 2.3 常用命令 3. 文件编辑 3.1 vim常用操作 3.2 常见 ...

最新文章

  1. AT2370 Piling Up
  2. Puppet 4 性能提升超2倍,升级前应该你知悉的变化
  3. 无需数据线,在Windows电脑上就可以浏览和编辑华为的手机文件
  4. 把程序显示在最前面 delphi_地球程序员之神:没上过大学,曾拒盖茨的Offer,4代码农靠他吃饭...
  5. [zz]NoSQL对比:Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j
  6. 高通驱动9008安装_高通snapdragon888的性能有多强大
  7. 【linux基础】关于ARM板子使用O3编译选项优化
  8. 信息学奥赛一本通(1210:因子分解)
  9. Linux之硬件资源管理
  10. 机器学习入门笔记总目录
  11. 【15年浙江省赛 C ZOJ 3871】Convex Hull【极角排序】
  12. 力软敏捷开发框架源码7.0.6旗舰版 JNPF开发平台3.3.3 3.4.1企业版/旗舰版框架
  13. 【js】碰到了Flash与extjs冲突无法输入中文解决办法。
  14. 人人商城小程序 java版_人人商城小程序用户授权问题
  15. VUE和Element-UI下拉框select实现拼音,中文搜索
  16. 自我学习从阅读和记录开始
  17. PTA乙级【1013 数素数 (20分)】注意第四个测试点
  18. IntelliJ IDEA有些快捷键无法使用的解决方式
  19. “豫”见超融合,私有云浪潮开启新一线
  20. 0基础学Java(2)

热门文章

  1. oracle linux6 u盘安装,U盘安装RHEL6
  2. 快速排序的原理以及Java代码
  3. 小程序·云开发的HTTP API调用丨实战
  4. mysql函数(五.流程控制函数)
  5. Linux之Ubuntu安装搜狗输入法
  6. 基于用户击键特征的身份鉴别系统
  7. mysql: 模糊查询 feild like keyword or feild like keyword , concat(feild1,feild2,feild3) like keyword...
  8. Oracle中用rownum替代Top函数的方法
  9. [Ubuntu] Simple way to pass passwords on a shell script
  10. twrp3.3.0刷n9002_插画师必备笔刷,送你5套iPad5.0新出300款大神笔刷