当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 </span><spanclass="pun"></span><spanclass="kwd">var</span><spanclass="pun">:−</span><spanclass="str">"Variableisnotset"</span><spanclass="pun"></span><spanclass="pln">echo</span><spanclass="str">"1−Valueofvaris{var}"
echo </span><spanclass="pun"></span><spanclass="kwd">var</span><spanclass="pun">:=</span><spanclass="str">"Variableisnotset"</span><spanclass="pun"></span><spanclass="pln">echo</span><spanclass="str">"2−Valueofvaris{var}"
unset var
echo </span><spanclass="pun"></span><spanclass="kwd">var</span><spanclass="pun">:+</span><spanclass="str">"Thisisdefaultvalue"</span><spanclass="pun"></span><spanclass="pln">echo</span><spanclass="str">"3−Valueofvarisvar"
var="Prefix"
echo </span><spanclass="pun"></span><spanclass="kwd">var</span><spanclass="pun">:+</span><spanclass="str">"Thisisdefaultvalue"</span><spanclass="pun"></span><spanclass="pln">echo</span><spanclass="str">"4−Valueofvarisvar"
echo </span><spanclass="pun"></span><spanclass="kwd">var</span><spanclass="pun">:?</span><spanclass="str">"Printthismessage"</span><spanclass="pun"></span><spanclass="pln">echo</span><spanclass="str">"5−Valueofvaris{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
参考链接
www.learnfk.com/linux/linux…