Shell脚本学习-read命令

news2024/9/20 17:43:32

Shell变量可以直接赋值或者脚本传参的方式,还可以使用echo命令从标准输入中获得,read为bash内置命令。

[root@vm1 ~]# type echo
echo is a shell builtin

 

常用参数:

-p prompt:设置提示信息,我们看help内容的信息:输出PROMT字符串信息,这个字符串没有换行符的结尾,在read之前。

-t timeout: 设置超时时间,如果超出了这个时间还没有结束输入,read就不存储任何数据。单位默认为秒。

-n nchars: 读取nchars个字符后,就返回,而不是等到newline换行。还提到了分隔符,如果这个分隔符少于nchar个字符,那就读取分隔符之前的内容。

-r: 不允许反斜线进行转移:escape:逃跑转义。

-s:从终端输入的时候不显示,那这个场景正常是密码输入的时候。

我们能从help或者man中,通过阅读英文能学到更多的内容。鼓励多看man学习。

示例1:

[root@vm1 ~]# read -p "Please input two number: " a1 a2
Please input two number: 3 4
[root@vm1 ~]# echo $a1
3
[root@vm1 ~]# echo $a2
4

示例2:

[root@vm1 ~]# read -sp "Please input password: " password
Please input password: [root@vm1 ~]#
[root@vm1 ~]# echo $password
123456

 说明:在终端输入密码123456的时候,并没有把密码显示出来。

示例3:

[root@vm1 ~]# read -r a
\123
[root@vm1 ~]# echo $a
\123
[root@vm1 ~]# read a
\123
[root@vm1 ~]# echo $a
123

示例4:

[root@vm1 scripts]# cat jisuan3.sh
#!/bin/bash
read -p "Please input two number: " a b

echo "a-b=$(($a - $b))"
echo "a+b=$(($a + $b))"
echo "a*b=$(($a * $b))"
echo "a/b=$(($a / $b))"
echo "a**b=$(($a ** $b))"
echo "a%b=$(($a % $b))"

说明:read后面接的是普通变量。谁运行脚本程序,谁输入数据。

传参和read是两种变量赋值的方法,不能混用。

[root@vm1 scripts]# sh jisuan3.sh
Please input two number: 10 5
a-b=5
a+b=15
a*b=50
a/b=2
a**b=100000
a%b=0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/802709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习笔记|百度文心千帆大模型平台测试及页面交互简易代码

目前百度文心一言的内测资格申请相当拉胯,提交申请快3个月,无任何音讯。不知道要等到什么时候。 百度适时开放了百度文心千帆大模型平台,目前可以提交申请测试,貌似通过的很快,已取得测试申请资格,可以用起…

产品经理如何平衡用户体验与商业价值?

近期负责前端产品设计工作的小李忍不住抱怨:公司总是要求客户第一,实现客户良好体验,但在实际操作过程中,面向用户 体验提升的需求,研发资源计划几乎很难排上,资源都放在公司根据业务价值排序的需求…

MySQL笔记——表的分组查询、表的分页查询、表的约束、数据库设计

系列文章目录 MySQL笔记——MySQL数据库介绍以及在Linux里面安装MySQL数据库,对MySQL数据库的简单操作,MySQL的外接应用程序使用说明 MySQL笔记——表的修改查询相关的命令操作 MySQL案例——多表查询以及嵌套查询​​​​​​ MySQL笔记——数据库当…

室外高精度人员定位系统解决方案:实现安全与效率的完美平衡

在如今高度竞争的商业环境中,室外高精度人员定位系统已成为许多行业提高安全性和效率的关键工具。 对此,华安联大推出室外高精度人员定位系统解决方案,该方案通过融合多种定位技术和优化算法,实现高精度定位,并通过真…

【Docker】Docker容器与虚拟机的对比、三要素、架构和镜像加速器的详细讲解

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…

亚马逊建议卖家使用“客户评论”选项卡提高产品评级!

亚马逊美国站发布公告称客户评论见解选项卡通过分析评论来帮助卖家推出评价较高的产品,以更好地了解客户偏好和当前趋势,从而提高产品评级,以下是公告内容: 客户评论见解选项卡通过分析评论来帮助卖家推出评价较高的产品&#xf…

一份百万收藏的《从零开始写分布式服务框架》称霸Github榜首!

前言 架构说简单点就是一堆技术、框架、工具的组合,至于怎么组合,这就非常考验架构师的经验和水平。一个优秀的架构,可以让开发效率变得更加高效,为企业节省更多的成本。程序员可将自己更多的精力放在业务需求的实现上&#xff0…

Redis 集群部署

Redis 3.0 版本后正式推出 Redis 集群模式,该模式是 Redis 的分布式的解决方案,是一个提供在多个 Redis 节点间共享数据的程序集,且 Redis 集群是去中心化的,它的每个 Master 节点都可以进行读写数据,每个节点都拥有平等的关系,每个节点都保持各自的数据和整个集群的状态…

基于YOLOv8开发构建蝴蝶目标检测识别系统

在前面的一篇博文中已经很详细地描述了如何基于YOLOv8开发构建自己的个性化目标检测模型,感兴趣的话可以看下: 《基于YOLOv8开发构建目标检测模型超详细教程【以焊缝质量检测数据场景为例】》 本文的主要目的就是基于YOLOv8来开发构建细粒度的蝴蝶目标…

【高压架构】AP5199S LED平均电流型恒流驱动IC 0.01调光 景观舞台汽车灯驱动照明

说明 AP5199S 是一款外围电路简单的多功能平均电流型 LED 恒流驱动器,适用于宽电压范围的非隔离式大功率恒流 LED 驱动领域。芯片 PWM 端口支持超小占空比的 PWM 调光,可响应 60ns 脉宽。为客户提供解决方案,限度地发挥灯具优势,…

Betaflight飞控之FAILSAFE机制

Betaflight飞控之FAILSAFE机制 1. 源由2. 设计2.1 触发方式2.1.1 遥控开关触发2.1.2 遥控信号丢失 2.2 FAILSAFE策略2.2.1 Drop mode2.2.2 Landing mode2.2.3 GPS Return mode 3. GPS救援状态机4. 总结5. 参考资料 1. 源由 之前对航模飞控之FAILSAFE机制做了一个简单的探讨&am…

【JavaEE初阶】——第七节.Servlet入门学习笔记

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:JavaEE进阶 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录 前…

基于 moleculer 微服务架构的智能低代码PaaS 平台源码 可视化开发

低代码开发平台源码 低代码管理系统PaaS 平台 无需代码或通过少量代码就可以快速生成应用程序的开发平台。 本套低代码管理后台可以支持多种企业应用场景,包括但不限于CRM、ERP、OA、BI、IoT、大数据等。无论是传统企业还是新兴企业,都可以使用管理后台…

filebeat介绍

1、filebeat概述 Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash或kafka进行索引 1.1 Filebeat两个主要组件 prospector 和 harvester。 prospector&a…

SpringBoot项目使用MyBatisX+Apifox IDEA 插件快速开发

今天跟大家介绍两个快速开发项目的插件。能大大提高开发效率。希望能帮助到大家。 1、MyBatisX 插件 MyBatis-Plus为我们提供了强大的mapper和service模板,能够大大的提高开发效率。但是在真正开发过程中,MyBatis-Plus并不能为我们解决所有问题&#xf…

Spark Streaming流媒体引擎

Spark Streaming是Spark的上一代流媒体引擎。Spark Streaming不再有更新,它是一个遗留项目。Spark中有一个更新且更易于使用的流媒体引擎,称为结构化流媒体 概述 Spark Streaming是核心Spark API的扩展,支持实时数据流的可扩展、高吞吐量、…

技术分享 | App测试时常用的adb命令你都掌握了哪些呢?

adb 全称为 Android Debug Bridge(Android 调试桥),是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。 adb 是一种功能强大的命令行工具,可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作&#xff0…

Python Geoplotlib 可视化地理数据的综合指南

Geoplotlib: Exploring the World with Python Python Geoplotlib 可视化地理数据的综合指南 Geoplotlib是一个强大的Python库,用于可视化地理数据。它提供了一种简单直观的方法来创建地图并在其上绘制地理数据。 Geoplotlib 建立在 matplotlib 和 numpy…

有哪些常用的设计素材资源网站?

设计师要想在瞬息万变的设计世界中紧跟潮流,就需要不断探索和访问流行的UI设计网站,看看什么是时尚。UI设计网站也是寻求可能解决方案、脚本和设计反馈的好地方。Behance对很多设计师来说并不陌生,是Adobe的UI设计网站。然而,2022…

蓝桥杯单片机第九届国赛 真题+代码

iic.c /* # I2C代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础&#xff0c;根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求&#xff0c;进行代码调试和修改。 */ #include <STC1…