Unix / Linux - Shell 替换
什么是替换?
shell 在遇到包含一个或多个特殊字符的表达式时执行替换。
示例
在这里,变量的打印值被它的值代替。 同时,"\n"被换行 −
#!/bin/sh a=10 echo -e "Value of a is $a \n"
您将收到以下结果。 这里的 -e 选项启用反斜杠转义的解释。
Value of a is 10
以下是没有-e选项的结果 −
Value of a is 10\n
echo 命令中可以使用以下转义序列 −
| 序号 | 转义 & 描述 |
|---|---|
| 1 |
\\ 反斜杠 |
| 2 |
\a 警报 (BEL) |
| 3 |
\b 退格键 |
| 4 |
\c 禁止尾随换行 |
| 5 |
\f 换页 |
| 6 |
\n 换行 |
| 7 |
\r 回车 |
| 8 |
\t 水平制表符 |
| 9 |
\v 垂直制表符 |
| 序号 | Form & 描述 |
|---|---|
| 1 |
${var} 替换var 的值。 |
| 2 |
${var:-word} 如果 var 为 null 或未设置,则 word 将替换为 var。 var 的值不会改变。 |
| 3 |
${var:=word} 如果 var 为 null 或未设置,则 var 设置为 word 的值。 |
| 4 |
${var:?message} 如果 var 为 null 或未设置,message 将打印到标准错误。 这将检查变量是否设置正确。 |
| 5 |
${var:+word} 如果设置了var,则用word 代替var。 var 的值不会改变。 |
示例
以下是显示上述替换的各种状态的示例 −
#!/bin/sh
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}"
执行后,您将收到如下结果 −
Variable is not set 1 - Value of var is Variable is not set 2 - Value of var is Variable is not set 3 - Value of var is This is default value 4 - Value of var is Prefix Prefix 5 - Value of var is Prefix

