SHELL脚本学习(五)用户输入

获取用户输入
1、基本的读取

read命令从标准或其他文件描述符读取数据,获取输入后,read命令将值存入变量中。
命令格式:

read variable
选项-p:提示信息

#!/usr/bin/bash
read -p "Enter your name:" name
echo hello $name
~$ ./test.sh
Enter your name:lintao
hello lintao
2、超时
使用read命令时要小心,脚本可能一直停在read命令处。如果不管是否有数据输入脚本都要继续执行,则 
可以使用-t选项,后面跟要等待的秒数
#!/usr/bin/bash
if read -t 5 -p "Enter your name:" name
thenecho hello $name
elseecho null 
fi
~$ ./test.sh
Enter your name:null
~$ ./test.sh
Enter your name:lintao
hello lintao
3、无显示读取
有时想要从脚本用户处得到输入,又不想显示在屏幕上。这时可以使用 -s选项
#!/usr/bin/bash
if read -s -p "Enter your password:" passwd
thenecho " ";echo passeord=$passwd;
elseecho null 
fi
~$ ./test.sh
Enter your password: 
passeord=123456
4、从文件中读取

下面两种方式实现输出文件自身的内容。

1、通过cat命令和管道读取
#!/usr/bin/bash
cat ./test.sh| while read line
doecho $line
done 
2、通过输入重定向读取
#!/usr/bin/bash
while read line
doecho $line
done < ./test.sh
实战演练

检查文件中的 IP列表 是否能连通

#!/usr/bin/bashecho scrip name is $(basename $0)# 输入文件名while read -p "input file path: " filenamedo# 文件名为空 或者 是 quit 则退出if [ -z $filename ] || [ $filename = quit ]thenecho exitbreakfiif [ -e $filename ]thencat $filename | while read ipdoecho ip : $ip ping -c 3 $ipdoneelseecho file $filename not existsfidoneecho end

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

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

相关文章

Oracle的优化器

sql优化第一步&#xff1a;搞懂Oracle中的SQL的执行过程 从图中我们可以看出SQL语句在Oracle中经历了以下的几个步骤&#xff1a; 语法检查&#xff1a;检查SQL拼写是否正确&#xff0c;如果不正确&#xff0c;Oracle会报语法错误。 语义检查&#xff1a;检查SQL中的访问对象…

Tomcat 配置:一文掌握所有要点

引言 Apache Tomcat 是一个流行的开源 Java Servlet 容器和 Web 服务器&#xff0c;广泛用于开发和部署 Java Web 应用程序。正确配置 Tomcat 是确保其性能、安全性和稳定性的关键。本文将详细介绍 Tomcat 的各项配置&#xff0c;帮助您优化和管理 Tomcat 服务器。 一、Tomca…

【C++】用红黑树封装map、set

用红黑树封装map、set 1. 红黑树1.1 模板参数的控制1.1.1 Value1.1.2 KeyOfValue 1.2 正向迭代器1.2.1 构造函数1.2.2 begin()end()1.2.3 operator()1.2.4 operator--()1.2.5 operator*()1.2.6 operator->()1.2.7 operator()1.2.8 operator!()1.2.9 总代码 1.3 反向迭代器1.…

规则引擎-Easy rule

规则引擎-Easy rule 最近有几个项目中都出现了根据XX条件执行XX方法的业务&#xff0c;在动手之前脑中总会下意识的发现如果按照常规的去写代码&#xff0c;无论使用何种设计模式&#xff0c;都会出现不同程度上的代码冗余或大量if-else判断。 甚至说判断XX条件的代码和执行X…

2024中国大学计算机科学与技术专业排名(非常详细)零基础入门到精通,收藏这一篇就够了

今天 6 月 8 号&#xff0c;高考第二天&#xff0c;随着大部分地区的高考结束&#xff0c;接下来就是焦急的等待分数的公布&#xff0c;然后学生们就迎来人生中的一个重要时刻——选择大学和专业。 在众多专业中&#xff0c;计算机科学与技术一直是备受瞩目的热门选择&#xf…

【爬虫】使用Python爬取百度学术页面的标题、作者、摘要和关键词

目录 安装所需库编写爬虫代码解释运行脚本结果 在本文中&#xff0c;我将介绍如何使用Python编写一个网络爬虫&#xff0c;从百度学术页面提取研究论文的标题、作者、摘要和关键词。我们将使用 requests和 BeautifulSoup库来实现这一目标。 安装所需库 首先&#xff0c;确保…

(delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第3节(特定类约束)

14.3.2 特定类约束 ​ 如果您的泛型类需要使用某个特定子集的类&#xff08;特定层次结构&#xff09;&#xff0c;则可能需要根据给定基类指定约束。 ​ 例如&#xff0c;如果您声明&#xff1a; typeTCompClass<T: TComponent> class​ 则此泛型类的实例仅适用于组…

2024年城市客运安全员考试题库

2024年城市客运安全员考试题库 46.依据《中华人民共和国安全生产法》&#xff0c;关于城市客运企业安全生产管理机构及安全生产管理人员对本单位安全生产工作应承担的职责&#xff0c;下列说法不正确的是&#xff08;  &#xff09;。 A.安全生产管理机构及安全生产管理人员…

uniapp引入uview无代码提示

前提安装正确&#xff1a; 无论是基于npm和Hbuilder X方式安装&#xff0c;一定要配置正确。 解决办法 以前在pages.json里面的写法&#xff1a; "easycom": {"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" }但是现在hbuilderx要求规范ea…

驱动开发之 input 子系统

1.input 子系统介绍 input 就是输入的意思&#xff0c;input 子系统就是管理输入的子系统&#xff0c;和 pinctrl、gpio 子系统 一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。比如按键输入、键盘、鼠标、触摸屏等 等这些都属于输入设备&#xff0c;不同的输入…

Redis到底支不支持事务?

文章目录 一、概述二、使用1、正常执行&#xff1a;2、主动放弃事务3、全部回滚:4、部分支持事务:5、WATCH: 三、事务三阶段四、小结 redis是支持事务的&#xff0c;但是它与传统的关系型数据库中的事务是有所不同的 一、概述 概念: 可以一次执行多个命令&#xff0c;本质是一…

Python爬虫实战:理论基础与源码

在当今信息爆炸的时代&#xff0c;网络爬虫&#xff08;Web Scraping&#xff09;成为了获取网络数据的重要工具。Python语言因其简洁的语法和强大的库支持&#xff0c;成为了编写网络爬虫的首选语言。本文将介绍网络爬虫的基本概念、工作原理&#xff0c;并提供部分Python爬虫…

《解决方案架构师修炼之道》读书笔记

1. 水在前面 第一次看到“解决方案架构师”这个词&#xff0c;就把这本书借回家翻了。最近也在网上看点资料&#xff0c;对比起来发现还是出版物内容更完整和更有体系&#xff0c;而且看书真的能让人安静下来。。。 《解决方案架构师修炼之道》所罗伯死里瓦斯塔瓦&#xff0c;内…

Web应用安全测试-信息泄漏

robots.txt泄漏敏感信息 漏洞描述&#xff1a;搜索引擎可以通过robots文件可以获知哪些页面可以爬取&#xff0c;哪些页面不可以爬取。Robots协议是网站国际互联网界通行的道德规范&#xff0c;其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯&#xff0c;如…

【SpringBoot笔记46】SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据源)

这篇文章,主要介绍SpringBoot多数据源配置(方式三:基于AOP动态切换需要使用哪个数据源)。 目录 一、SpringBoot多数据源配置 1.1、多数据源介绍 1.2、搭建基础工程 1.3、创建两个数据库 1.4、配置多数据源信息 1.5、创建动态数据源对象 1.6、创建DsContextHolder缓存…

每天五分钟深度学习pytorch:pytorch中的广播机制是什么?

本文重点 在pytorch中经常有张量和张量之间的运算,那么有一点需要注意,那就是维度要匹配,如果维度不匹配就有可能出现问题。如果维度不一致,此时也可以同时进行操作,此时就需要使用pytorch中的广播机制,本节课程就讲解pytorch中的广播机制。 广播机制示意图 如上就是py…

Java等待异步线程池跑完再执行指定方法的三种方式(condition、CountDownLatch、CyclicBarrier)

Java等待异步线程池跑完再执行指定方法的三种方式(condition、CountDownLatch、CyclicBarrier) Async如何使用 使用Async标注在方法上&#xff0c;可以使该方法异步的调用执行。而所有异步方法的实际执行是交给TaskExecutor的。 1.启动类添加EnableAsync注解 2. 方法上添加A…

《青少年编程与数学》课程方案:2、课程内容 4_1

《青少年编程与数学》课程方案&#xff1a;2、课程内容 4_1 一、计算机基础知识&#xff08;一&#xff09;计算机硬件知识&#xff08;二&#xff09;计算机软件知识&#xff08;三&#xff09;计算机系统知识&#xff08;四&#xff09;计算机网络知识&#xff08;五&#xf…

RK3568技术笔记之三 SAIL-RK3568开发板板卡功能测试

从这里开始&#xff0c;就是老生常谈系列之一&#xff1a;板卡功能测试。 放一张图镇一下帖 按照我自己顺手的方式&#xff0c;把这板子功能测一下。 先把开发板串口信息打印出来。 工具 功能 备注 电脑&#xff08;必备&#xff09; 提供使用终端软件环境 需要具备至少…