#######################################################3
echo命令用法:http://blog.csdn.net/u012005313/article/details/46127765
转义字符
如果表达式中存在特殊字符,Shell将会进行替换。例如,在双引号中使用变量就是一种替换,转义字符也是一种替换
#!/bin/bash a=10 echo -e "the number of a is $a \n"
此处-e选项表示对转义字符进行替换。如果不使用-e选项,将会原样输出:
运行结果为:
常用转义字符:
\\ | 反斜杠 |
\a | 警报,响铃 |
\b | 退格(删除键) |
\f | 换页(FF),将当前位置移到下页开头 |
\n | 换行 |
\r | 回车 |
\t | 水平制表符(tab键) |
\v | 垂直制表符 |
echo默认为-E选项:禁止转义;使用-n可以禁止使用换行符
########################################################
命令替换
Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出
语法:
`command`
#!/bin/bash DATE=`date` echo "Date is $DATE"
运行结果为:
###################################################
变量替换
变量替换可以根据变量的状态(是否为空 / 是否定义等)来改变它的值
可以使用的变量替换形式:
形式 | 说明 |
${var} | 变量本来的值 |
${var:-word} | 如果变量为空或已被山粗(unset),那么返回word,但不改变var的值 |
${var:=word} | 如果变量为空或已被删除,那么返回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}"
运行结果为: