当Shell遇到包含一个或多个特殊字符的表达式时,它将执行替换语句。
在此,变量的打印值由其值代替。同时,"\n" 换行-
#!/bin/sh a=10 echo -e "Learnfk.com of age is $a\n"
您将收到以下输出。在这里, -e 选项可以解释反斜杠转义符。
Learnfk.com of age is 10
以下是没有 -e 选项的输出-
Learnfk.com of age is 10\n
以下可在echo命令中使用的转义序列-
Sr.No. | Escape & 描述 |
---|---|
1 |
\\ 反斜杠 |
2 |
\a 警报(BEL) |
3 |
\b 退格键 |
4 |
\c 禁止尾随换行符 |
5 |
\f 换页 |
6 |
\n 换行 |
7 |
\r 回车 |
8 |
\t 水平标签 |
9 |
\v 垂直标签 |
命令替换
`command`
执行命令替换时,请确保使用反引号,而不是单引号字符。
命令替换通常用于将命令的输出分配给变量。以下每个示例演示命令替换-
#!/bin/sh DATE=`date` echo "Date is $DATE" USERS=`who | wc -l` echo "Logged in user are $USERS" UP=`date ; uptime` echo "Uptime is $UP"
执行后,您将收到以下输出-
Date is Thu Jul 2 03:59:57 MST 2021 Logged in user are 1 Uptime is Thu Jul 2 03:59:57 MST 2021 03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15
可变替换
变量替换使Shell程序员可以根据变量的状态来操作变量的值。
下表是所有可能的替代方法-
Sr.No. | 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
参考链接
https://www.learnfk.com/linux/linux-shell-substitutions.html
标签:教程,word,无涯,Value,echo,Variable,Linux,var,替换 From: https://blog.51cto.com/u_14033984/8571765