Menu Close

Shell脚本中的替换

什么是替换?

当遇到包含一个或多个特殊字符的表达式时,shell 会执行替换。

这里,变量的打印值被它的值代替。同时,“\n”被换行 –

#!/bin/sh a=10 
echo -e "Value of a is $a \n"
运行结果
Value of a is 10
如果没有 -e, 运行结果
Value of a is 10\n
以下可用于 echo 命令的转义序列 -
Sr.No. Escape & Description
1 \\

backslash

2 \a

alert (BEL)

3 \b

backspace

4 \c

suppress trailing newline

5 \f

form feed

6 \n

new line

7 \r

carriage return

8 \t

horizontal tab

9 \v

vertical tab

您可以使用 -E 选项禁用反斜杠转义的解释(默认)。

命令替换

命令替换是 shell 执行给定命令集,然后用它们的输出代替命令的机制。

语法

当命令给出时执行命令替换 –

`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 2009
Logged in user are 1
Uptime is Thu Jul 2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03, 1 user, load avg: 0.13, 0.07, 0.15

变量替换

变量替换使 shell 程序员能够根据变量的状态来操作变量的值。

这是所有可能替换的下表 –

Sr.No. Form & Description
1 ${var}

取代var的值

2 ${var:-word}

如果var是空,或者未定,就用word代替var。var的值不改变

 

3 ${var:=word}

如果var是空,或者未定,就用word代替var。

4 ${var:?message}

如果var是空,或者未定,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
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in Linux 教程