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命令中使用的转义序列 :
Sr.No. | Escape&描述 |
---|---|
1 | \\ 反斜杠 |
2 | \ a 警告(BEL) |
3 | \ b 退格 |
4 | \ c 抑制尾随换行 |
5 | \f 表单Feed |
6 | \ n 新行 |
7 | \ r 回车 |
8 | \t 水平标签 |
9 | \v 垂直标签 |
您可以使用 -E 选项禁用反斜杠转义的解释(默认).
您可以使用 -n 禁用插入新行的选项.
命令替换是shell执行给定命令集的机制然后在命令位置替换它们的输出.
命令替换是在命令为&minus时执行的;
`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&描述 |
---|---|
1 | $ {var} 替换 var 的值. |
2 | $ {var :-word} 如果 var 为null或未设置, word 将替换 var . var 的值不会改变. |
3 | $ {var:= word} 如果 var 为空或未设置, var 设置为 word 的值. |
4 | $ {var: ?message} 如果 var 为空或未设置,则消息将打印为标准错误.这将检查变量是否设置正确. |
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