本发明涉及测试的技术领域,具体涉及一种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键回删输入错误字符,输入过滤键盘外的特殊字符,提高服务器测试脚本开发效率和质量,提高了操作效率,有效解决测试程序输入回删出现乱码的问题。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。