替换:如果表达式中含有特殊字符,shell会进行替换。例如在双引号中使用变量就是一种替换。转义字符也是一种替换

#!/bin/bash

a=10
echo -e "Value of a is ${a} \n"

#-e表示对转义字符替换,不加的话输出如下#

echo "Value of a is ${a} \n"

转义字符替换

下列转义字符可用于echo

1.        \\       反斜杠        
2.     \a      警报,响铃 ?
3.     \b      退格 (删除键)?
4.     \f       换页,将当前的位置移到下页开头
5.     \n      换行
6.     \r       回车
7.     \t       一个缩进
8.     \v        垂直制表符 ?

示例如下:

1 echo -e "Value of a is ${a} \\"
2 echo -e "Value of a is ${a} \t ${a}"

可以使用 echo 命令的 -E 选项禁止转义,默认也是不转义的;使用 -n 选项可以禁止插入换行符

命令替换

shell先执行命令,将输出结果暂时保存,在适当的地方输出
语法    `command`   ``是Esc下面那个

示例如下:

1 DATE=`date`
2 echo "Date is ${DATE}"
3 
4 USERS=`who | wc -l`
5 echo "Logged in usr are $USERS"
6 
7 UP=`date ; uptime`
8 echo "Uptime is ${UP}"

 

变量替换

可以根据变量的状态(空?定义?)来改变它的值
可以使用的变量替换形式如下
1.      ${var}                变量原本的值
2.      ${var:-word}         如果变量var为空或已被unset,那么返回word,但不改变其值
3.      ${var:=word}        如果变量var为空或已被unset,那么返回word,并将其值设为                word
4.      ${var:?message}      如果变量var为空或已被unset,那么将message送到标准错误输               出,可以用来检测变量var是否可以被正常赋值
                           若此替换出现在shell脚本中,那么脚本将停止运行        
6.      ${var:+word}        如果变量var被定义,那么返回word,但不改变其值

示例如下:

 1 echo ${var:-"Variable is not set"}
 2 echo " 1-Value of var is ${var} "
 3 
 4 unset var
 5 echo ${var:+"This is default value"}
 6 echo "3-Value of var is ${var}"
 7 
 8 echo ${var:="Variable is not set"}
 9 echo " 2-Value of var is ${var} "
10 
11 var="ChenMo"
12 echo ${var:?"Print this message"}    #把ChenMo输出终端#
13 echo "4-Value of var is ${var}"
14 
15 var="Matto"
16 echo ${var:+"This is default valus"}
17 echo "Value of var is ${var}"