Shell 替代

简介: Shell 替代

Shell 替代

替代是什么?

Shell当它遇到一个表达式,其中包含一个或多个特殊字符进行替代。


例子:

下面的例子,同时使打印取代的其值的变量的值。同时“ ”是一个新行取代:

#!/bin/sh
a=10
echo -e "Value of a is $a 
"


这将产生下面的结果。这里-e选项可以解释反斜杠转义。

Value of a is 10

下面是结果没有-e选项:

Value of a is 10

这里echo命令可以用在以下转义序列:

转义 描述
backslash
a alert (BEL)
backspace
c suppress trailing newline
f form feed
new line
carriage return
horizontal tab
v vertical tab

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

您可以使用-n选项来禁用插入新行。

命令替换:

命令替换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程序员操纵变量的值,根据其状态。

这里是所有可能的替换如下表:

格式 描述
${var} Substitue the value of var.
${var:-word} If var is null or unset, word is substituted for var. The value of var does not change.
${var:=word} If var is null or unset, var is set to the value of word.
${var:?message} If var is null or unset, message is printed to standard error. This checks that variables are set correctly.
${var:+word} If var is set, word is substituted for var. The value of var does not change.

例子:

下面的例子显示各种状态,上述替代:

#!/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
相关文章
【网站部署】解析二级域名并部署网站(一)
【网站部署】解析二级域名并部署网站(一)
784 0
【网站部署】解析二级域名并部署网站(一)
|
7月前
|
人工智能 IDE 搜索推荐
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
GitHub Copilot引爆编程界!这个AI编程神器将彻底改变你的编程生涯!
345 22
惊!GitHub Copilot或将颠覆传统编程,程序员即将失业?
|
计算机视觉 Python
opencv识别颜色
opencv识别颜色
288 0
|
存储 安全 Java
jdk21的外部函数和内存API(MemorySegment)(官方翻译)
本文介绍了JDK 21中引入的外部函数和内存API(MemorySegment),这些API使得Java程序能够更安全、高效地与JVM外部的代码和数据进行互操作,包括调用外部函数、访问外部内存,以及使用不同的Arena竞技场来分配和管理MemorySegment。
459 1
jdk21的外部函数和内存API(MemorySegment)(官方翻译)
|
算法 Java 程序员
内存回收
【10月更文挑战第9天】
456 5
|
运维 Kubernetes Devops
阿里云云效操作报错合集之k8s直接返回401,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之k8s直接返回401,该如何排查
|
人工智能 搜索推荐 大数据
云上智能投顾:重塑个人理财的新纪元
数据安全与隐私保护:随着投资者信息的不断增加如何确保数据的安全性和隐私性成为亟待解决的问题。 技术成熟度与稳定性:目前云上智能投顾技术仍处于不断发展和完善阶段其技术成熟度和稳定性仍需进一步提升。 投资者教育与信任度:部分投资者对新兴的智能投顾技术持怀疑态度如何提升投资者的信任度和接受度也是一大挑战。 五、未来展望 随着技术的不断进步和市场环境的不断变化云上智能投顾将迎来更加广阔的发展前景。未来云上智能投顾将更加注重数据安全和隐私保护加强技术研发提升技术成熟度和稳定性;同时加强与金融机构、科技企业的合作共同推动智能投顾行业的健康发展;此外还将积极探索新的应用场景和服务模式如企业投顾、公益投顾等以
363 7
|
Java
Java 继承深度剖析:子类与父类之间的“血缘”关系,如何传承与革新?
【6月更文挑战第16天】Java 继承体现类之间的"血缘"关系,子类继承父类的属性和方法,如`Student`继承`Person`。子类可扩展或覆盖父类功能,如`Student`的`introduce()`,展示代码复用和定制。同样,`Shape`的子类`Circle`和`Square`继承并定制`draw()`方法,形成多样的类结构,适应不同场景,增强代码组织和效率。
238 4
深入了解Java中的BigDecimal类及其方法
深入了解Java中的BigDecimal类及其方法
306 1
|
存储 API 数据安全/隐私保护
邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括:邮件误标为垃圾、邮箱设置不当、发件服务器故障、邮箱地址输入错误,及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认邮箱地址无误、联系服务提供商与ISP,或尝试其他邮箱服务。使用AOKSend等可靠邮件服务可提升送达率,其优势在于高送达率、实时监测与易集成性,确保验证码邮件及时准确到达,改善用户体验。

热门文章

最新文章