命令替换

命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
命令替换的语法:

`command`

注意是反引号,不是单引号,这个键位于 Esc 键下方。
下面的例子中,将命令执行结果保存在变量中:

#!/bin/bash
DATE=`date`
echo "Date is $DATE" USERS=`who | wc -l`
echo "Logged in user are $USERS" UP=`date ; uptime`
echo "Uptime is $UP"

运行结果:

变量替换

变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值

可以使用的变量替换形式:

形式 说明
${var} 变量本来的值
${var:-word} 如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word} 如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word} 如果变量 var 被定义,那么返回 word,但不改变 var 的值。

请看下面的例子:

#!/bin/bash

echo ${var:-"Variable is not set"}
echo "1 - Value of var is ${var}" echo ${var:="Variable is not set"}
echo "2 - Value of var is ${var}" unset var
echo ${var:+"This is default value"}
echo "3 - Value of var is $var" var="Prefix"
echo ${var:+"This is default value"}
echo "4 - Value of var is $var" echo ${var:?"Print this message"}
echo "5 - Value of var is ${var}"

运行结果:

Shell命令替换与变量替换的更多相关文章

  1. 【linux】linux下shell命令 多个变量在命令中的引用 以及重新赋值给新的变量

    原本的find命令: find /apps/Devops/jenkins/workspace/swapping/target/ -name '*swapping*.jar' 错误的命令: SOURCE ...

  2. Shell 变量替换及测试

    声明:$ 后面跟linux可执行命令 一.变量替换                   语法                      说明 ${变量名#匹配规则} 从变量的开头进行规则匹配,将符合最 ...

  3. shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。

    shell脚本?在说什么是shell脚本之前,先说说什么是shell. shell是外壳的意思,就是操作系统的外壳.我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包 ...

  4. shell命令中用source 和sh(或者bash)执行脚本的区别,以及export的作用

    用户登录到Linux系统后,系统将启动一个用户shell,我们暂且称这个shell为shell父. 在这个shell父中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序. 当使用 ...

  5. Linux主要shell命令详解(下)

    命令行编辑操作 功能 Ctrl+b或左箭头键 左移一个字符(移至前一个字符) Ctrl+f或右箭头键 右移一个字符(移至后一个字符) Ctrl+a 移至行首 Ctrl+e 移至行尾 Esc b 左移一 ...

  6. shell 命令之bind,enable,ulimit

    1.bind 在shell中,内建(builtin)命令bind,格式如下: bind [-m keymap] [-lpsvPSVX] bind [-m keymap] [-q function] [ ...

  7. 【Shell脚本学习9】Shell替换:Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...

  8. Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: #!/bin/bash a=10 echo -e "Value ...

  9. Shell替换:Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本复制 #!/bin/bash a=10 echo -e &quo ...

随机推荐

  1. mybatis 批量插入值的sql

    <insert id="insertAwardPic" useGeneratedKeys="true" parameterType="java. ...

  2. ACPI

    高级配置与电源接口(Advanced Configuration and Power Interface),简称ACPI.1997年由Intel.Microsoft.Toshiba 所共同制定提供操作 ...

  3. js 中null 和 undifined

    1.一个重要问题 null == undifined (true) ; null === undefined (false) 为什么是这样的呢? undifined是未赋值的基本数据类型,未定义: n ...

  4. InnoDB表要建议用自增列做主键

    InnoDB引擎表是基于B+树的索引组织表(IOT): 每个表都需要有一个聚集索引(clustered index): 所有的行记录都存储在B+树的叶子节点(leaf pages of the tre ...

  5. C: strcpy & memcpy & scanf/printf format specifier.. escape characters..

    well, strcpy differs from memcpy in that it stops copy at \0 the format specifier is a string.. whic ...

  6. 转载 Deep learning:二(linear regression练习)

    前言 本文是多元线性回归的练习,这里练习的是最简单的二元线性回归,参考斯坦福大学的教学网http://openclassroom.stanford.edu/MainFolder/DocumentPag ...

  7. 完美版cookie设置/得到/删除2016/423

    function setCookie(key, value, t) { var oDate = new Date(); oDate.setDate( oDate.getDate() + t ); do ...

  8. HttpClient的get和post方式提交数据的使用

    /** * Http工具类 */ public class HttpUtil { // 创建HttpClient对象 public static HttpClient httpClient = new ...

  9. WCF配置文件的问题(位置)

    引用过了远程的WCF服务,会自动生成配置文件,但是这个配置的位置,尽量放在applicationSettings的前面 刚才测试了,貌似放后面,会报错(执行的时候,这个问题,需要继续试验) (待验证) ...

  10. MFC中为菜单或按钮添加快捷键功能

    1.新建一快捷键资源,ACCELERATOR,关联相应的ID号,下图所示中,其中,第一个ID为自定义快捷键ID,按CTRL+R,此时响应该ID以应的消息响应函数, 第二个ID为菜单ID,此时按CTRL ...