CN108205497A - 一种shell读取输入的方法及系统 - Google Patents
一种shell读取输入的方法及系统 Download PDFInfo
- Publication number
- CN108205497A CN108205497A CN201810002206.6A CN201810002206A CN108205497A CN 108205497 A CN108205497 A CN 108205497A CN 201810002206 A CN201810002206 A CN 201810002206A CN 108205497 A CN108205497 A CN 108205497A
- Authority
- CN
- China
- Prior art keywords
- character
- input
- variable
- bivariate
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明提供了一种shell读取输入的方法及系统,应用于Linux和Unix平台,将读取外部输入信息的方法封装成函数,方便Shell脚本调用,增加输入二次确认提示,利用算法和判定方法来处理输入的字符以取得预期的输入二次确认提示,实现按Backspace键回删输入错误字符,输入过滤键盘外的特殊字符,提高服务器测试脚本开发效率和质量,提高了操作效率,有效解决测试程序输入回删出现乱码的问题。
Description
技术领域
本发明涉及测试的技术领域,具体涉及一种shell读取输入的方法及系统。
背景技术
在开发服务器diag测试程序时大量的shell脚本使用,很多时候和场景都需要在屏幕前提示操作人员输入相应的机器信息,工站,操人员工号等然后通过脚本的参数接收相应的输入再跟标准数据进行核对。现有技术中,在shell脚本中要接收输入一般是使用read指令,或者是read命令与echo两者相结合使用,这种方法容易接收到乱码或者出现输入错误时,要删除错误的内容不灵活,尤其在这些场景需要频繁地使用到扫码,手动敲入,这种不便会更加地明显。
发明内容
基于上述问题,本发明提出了一种shell读取输入的方法及系统,提高开发以及操作人员的效率。
本发明提供如下技术方案:
一方面,本发明提供了一种Shell读取输入的方法,包括:
步骤101,调用函数,所述函数接收一参数;
步骤102,定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;
步骤103,按字符读取输入并存入第二变量,游标下移;
步骤104,判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则跳转至步骤103;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,跳转至步骤103,若所述第二变量的ASCII码值为空则退出。
其中,所述参数为提示用户输入信息。
其中,所述函数为Shell脚本函数。
其中,所述方法应用于Linux或Unix平台。
另外,本发明还提供了一种Shell读取输入的系统,所述系统包括:
函数调用模块,用于调用函数,所述函数接收一参数;
函数执行模块,用于定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;按字符读取输入并存入第二变量,游标下移;判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则重新按字符读取输入;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,重新按字符读取输入,若所述第二变量的ASCII码值为空则退出。
其中,所述参数为提示用户输入信息。
其中,所述函数为Shell脚本函数。
其中,所述系统应用于Linux或Unix平台。
本发明提供了一种shell读取输入的方法及系统,应用于Linux和Unix平台,将读取外部输入信息的方法封装成函数,方便Shell脚本调用,增加输入二次确认提示,利用算法和判定方法来处理输入的字符以取得预期的输入二次确认提示,实现按Backspace键回删输入错误字符,输入过滤键盘外的特殊字符,提高服务器测试脚本开发效率和质量,提高了操作效率,有效解决测试程序输入回删出现乱码的问题。
附图说明
图1是本发明的方法流程图;
图2是本发明的系统结构框图;
具体实施方式
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
基于上述,一方面,本发明的实施方式提供了一种shell读取输入的方法,附图1是本发明的方法流程图,附图2是本发明的系统结构框图,所述方法包括:
步骤101,调用函数,所述函数接收一参数;
Shell调用函数,假定函数名为scan(Shell脚本函数),scan函数接收一个参数,作为提示用户输入信息。
所述scan函数为:
步骤102,定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;
定义label第一变量来接收用户输入,初始化为空,定义len为接收字符长度初始化为0;
步骤103,按字符读取输入并存入第二变量,游标下移;
按字符读取输入并存入第二变量ch中;
步骤104,判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则跳转至步骤103;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,跳转至步骤103,若所述第二变量的ASCII码值为空则退出。
判断ch的ASCII码值,ch=8或者ch=127时说明用户输入了退格键,回删一位输入,len减去1,同时处理已经输入的字符,ch>126或者ch<33重新执行步骤103;ch<=126或者ch>=33,保存ch值,加到label变量中保存,重新执行步骤103;ch为空时退出。
本发明应用于Linux或Unix平台。
本发明提供了一种shell读取输入的方法,应用于Linux和Unix平台,将读取外部输入信息的方法封装成函数,方便Shell脚本调用,增加输入二次确认提示,利用算法和判定方法来处理输入的字符以取得预期的输入二次确认提示,实现按Backspace键回删输入错误字符,输入过滤键盘外的特殊字符,提高服务器测试脚本开发效率和质量,提高了操作效率,有效解决测试程序输入回删出现乱码的问题。
另一方面,本发明的实施方式提供了一种shell读取输入的系统,所述系统包括:
函数调用模块201,用于调用函数,所述函数接收一参数;
Shell调用函数,假定函数名为scan(Shell脚本函数),scan函数接收一个参数,作为提示用户输入信息。
所述scan函数为:
函数执行模块202,用于定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;按字符读取输入并存入第二变量,游标下移;判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则跳转至步骤103;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,跳转至步骤103,若所述第二变量的ASCII码值为空则退出。
定义label第一变量来接收用户输入,初始化为空,定义len为接收字符长度初始化为0;
按字符读取输入并存入第二变量ch中;
判断ch的ASCII码值,ch=8或者ch=127时说明用户输入了退格键,回删一位输入,len减去1,同时处理已经输入的字符,ch>126或者ch<33重新执行步骤103;ch<=126或者ch>=33,保存ch值,加到label变量中保存,重新执行步骤103;ch为空时退出。
本发明应用于Linux或Unix平台。
本发明提供了一种shell读取输入的系统,应用于Linux和Unix平台,将读取外部输入信息的方法封装成函数,方便Shell脚本调用,增加输入二次确认提示,利用算法和判定方法来处理输入的字符以取得预期的输入二次确认提示,实现按Backspace键回删输入错误字符,输入过滤键盘外的特殊字符,提高服务器测试脚本开发效率和质量,提高了操作效率,有效解决测试程序输入回删出现乱码的问题。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种Shell读取输入的方法,其特征在于:
步骤101,调用函数,所述函数接收一参数;
步骤102,定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;
步骤103,按字符读取输入并存入第二变量,游标下移;
步骤104,判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则跳转至步骤103;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,跳转至步骤103,若所述第二变量的ASCII码值为空则退出。
2.根据权利要求1所述的方法,其特征在于:所述参数为提示用户输入信息。
3.根据权利要求1所述的方法,其特征在于:所述函数为Shell脚本函数。
4.根据权利要求1所述的方法,其特征在于:所述方法应用于Linux或Unix平台。
5.一种Shell读取输入的系统,其特征在于:所述系统包括:
函数调用模块,用于调用函数,所述函数接收一参数;
函数执行模块,用于定义第一变量来接收用户输入,所述第一变量初始化为空,定义接收字符长度且初始化为零;按字符读取输入并存入第二变量,游标下移;判断所述第二变量的ASCII码值,当所述第二变量的ASCII码值等于8或127时,回删一位输入,所述字符长度减一,同时处理已经输入的字符;若所述第二变量的ASCII码值大于126或小于33则重新按字符读取输入;若所述第二变量的ASCII码值小于等于126或大于等于33,第二变量值赋值至所述第一变量中保存,重新按字符读取输入,若所述第二变量的ASCII码值为空则退出。
6.根据权利要求5所述的系统,其特征在于:所述参数为提示用户输入信息。
7.根据权利要求5所述的系统,其特征在于:所述函数为Shell脚本函数。
8.根据权利要求5所述的系统,其特征在于:所述系统应用于Linux或Unix平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002206.6A CN108205497A (zh) | 2018-01-02 | 2018-01-02 | 一种shell读取输入的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002206.6A CN108205497A (zh) | 2018-01-02 | 2018-01-02 | 一种shell读取输入的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108205497A true CN108205497A (zh) | 2018-06-26 |
Family
ID=62605588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002206.6A Pending CN108205497A (zh) | 2018-01-02 | 2018-01-02 | 一种shell读取输入的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108205497A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004213293A (ja) * | 2002-12-27 | 2004-07-29 | Accelia Inc | コンテンツサーバ防衛システム |
CN103984618A (zh) * | 2014-06-05 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种linux服务器硬盘活动状态的监控方法 |
CN107153539A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种文件接口系统 |
-
2018
- 2018-01-02 CN CN201810002206.6A patent/CN108205497A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004213293A (ja) * | 2002-12-27 | 2004-07-29 | Accelia Inc | コンテンツサーバ防衛システム |
CN103984618A (zh) * | 2014-06-05 | 2014-08-13 | 浪潮电子信息产业股份有限公司 | 一种linux服务器硬盘活动状态的监控方法 |
CN107153539A (zh) * | 2017-04-18 | 2017-09-12 | 北京思特奇信息技术股份有限公司 | 一种文件接口系统 |
Non-Patent Citations (2)
Title |
---|
MIR2: "shell脚本编程学习(二)变量,用户输入,参数", 《CSDN博客HTTPS://BLOG.CSDN.NET/ZAQWSX20/ARTICLE/DETAILS/78316385》 * |
熊启军: "《C语言程序设计》", 31 May 2015, 中国铁道出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7881491B2 (en) | Method, system and apparatus for operating a device using contextual scripting | |
KR101770529B1 (ko) | 2차원 코드 인식 방법 및 장치 | |
US7162694B2 (en) | Method for entering text | |
US20090170536A1 (en) | Automatic language selection for text input in messaging context | |
EP1861947A2 (en) | System and method for using a visual password scheme | |
CN109857477A (zh) | 混合应用转场优化方法、装置及设备 | |
CN110703977A (zh) | H5网页的输入键盘实现方法、装置、设备及存储介质 | |
KR101658920B1 (ko) | 입력 방법, 시스템, 프로그램 및 기록매체 | |
CN113127432A (zh) | 操作执行方法、装置、电子设备和介质 | |
CN107239202B (zh) | 控制指令识别方法和装置 | |
CN116644213A (zh) | Xml文件读取方法、装置、设备及存储介质 | |
CN108737634B (zh) | 语音输入方法及装置、计算机装置和计算机可读存储介质 | |
US20090158090A1 (en) | Data entry retrieval | |
CN108205497A (zh) | 一种shell读取输入的方法及系统 | |
US6947926B2 (en) | Data processing method and apparatus and storage medium | |
CN110221874A (zh) | 快速启动应用的方法、装置及设备 | |
CN110968236A (zh) | 基于网页的截图方法及装置 | |
CN113672826B (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
CN112486650A (zh) | 操作路径切换方法、装置和电子设备 | |
CN112732100A (zh) | 信息处理方法、装置和电子设备 | |
CN107632851B (zh) | 操控记录方法及自动执行操控方法 | |
CN115982358B (zh) | 文档拆分方法、装置、终端设备和计算机可读存储介质 | |
CN110955473A (zh) | 显示加载提示信息的方法及装置 | |
CN113780026B (zh) | 图形码识别方法、装置、电子设备及存储介质 | |
CN113986030A (zh) | 一种基于鼠标的字符输入方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180626 |