无涯教程-Linux - 替换语句

51 阅读1分钟

当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">"1Valueofvaris</span><span class="pun">{</span><span class="kwd">var</span><span class="pun">:-</span><span class="str">"Variable is not set"</span><span class="pun">}</span><span class="pln"> echo </span><span class="str">"1 - Value of var is {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">"2Valueofvaris</span><span class="pun">{</span><span class="kwd">var</span><span class="pun">:=</span><span class="str">"Variable is not set"</span><span class="pun">}</span><span class="pln"> echo </span><span class="str">"2 - Value of var is {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">"3Valueofvaris</span><span class="pun">{</span><span class="kwd">var</span><span class="pun">:+</span><span class="str">"This is default value"</span><span class="pun">}</span><span class="pln"> echo </span><span class="str">"3 - Value of var is var"

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">"4Valueofvaris</span><span class="pun">{</span><span class="kwd">var</span><span class="pun">:+</span><span class="str">"This is default value"</span><span class="pun">}</span><span class="pln"> echo </span><span class="str">"4 - Value of var is var"

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">"5Valueofvaris</span><span class="pun">{</span><span class="kwd">var</span><span class="pun">:?</span><span class="str">"Print this message"</span><span class="pun">}</span><span class="pln"> echo </span><span class="str">"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

参考链接

www.learnfk.com/linux/linux…