一种用于调用带参数可执行程序的方法与设备
文献发布时间:2023-06-19 09:32:16
技术领域
本申请涉及计算机系统运维技术领域,尤其涉及一种用于调用带参数可执行程序的技术。
背景技术
目前在对MAC系统计算机做运维时,常用到系统自带的open函数来调用某些带参数的可执行程序,例如,open函数通过参数args可以带入某些可执行程序的参数。
但是并不是所有带参数的可执行程序,通过上述方式都可使可执行程序带入的参数生效。对于某些可执行程序,通过open函数来调用,则无法使可执行程序带入的参数生效。
发明内容
本申请的目的是提供一种用于调用带参数可执行程序的方法与设备,用以解决现有计算机系统运维中不能灵活调用某些可执行程序的技术问题。
根据本申请的一个方面,提供了一种用于调用带参数可执行程序的方法,其中,所述方法包括:
获取所述带参数可执行程序的预设参数;
创建包含调用命令的命令行工程,其中,所述调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序;
编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序;
调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。
可选地,其中,所述获取所述带参数可执行程序的预设参数还包括:
将获取到的所述预设参数保存到文件中。
可选地,其中,所述将获取到的所述预设参数保存到文件中包括:
将所述预设参数进行加密,其中,加密的方式是可逆的;
将加密后的预设参数保存到文件中。
可选地,其中,若将所述预设参数进行加密后保存到文件中,则所述方法还包括:
从所述文件中获取所述加密后的预设参数;
对所述加密后的预设参数进行解密,以获取所述预设参数。
可选地,其中,所述带参数可执行程序包括使用系统自带的open函数无法使带入参数生效的可执行程序。
根据本申请的另一方面,还提供了一种用于调用带参数可执行程序的设备,其中,所述设备包括:
第一装置,用于获取所述带参数可执行程序的预设参数;
第二装置,用于创建包含被调用命令的命令行工程,其中,所述被调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序;
第三装置,用于编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序;
第四装置,用于调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。
与现有技术相比,本申请通过一种用于调用带参数可执行程序的方法与设备,首先获取所述带参数可执行程序的预设参数,接着创建包含调用命令的命令行工程,其中,所述调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序,然后编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序,最后调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。通过该方法可以方便灵活地调用带参数的可执行程序,减少了计算机系统运维中对可执行程序的限制,可应用于基于客户端的计算机系统运维的各种应用场景。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种用于调用带参数可执行程序的方法流程图;
图2示出根据本申请另一个方面的一种用于调用带参数可执行程序的设备示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,系统各模块和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及优选实施例,对本申请的技术方案,进行清楚和完整的描述。
图1示出本申请一个方面的一种用于调用带参数可执行程序的方法流程图,其中,一个实施例的方法包括:
S11获取所述带参数可执行程序的预设参数;
S12创建包含调用命令的命令行工程,其中,所述调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序;
S13编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序;
S14调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。
在本申请中,所述方法通过设备1执行,所述设备1为计算机设备和/或云,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、网络主机、单个网络服务器、多个网络服务器集;所述云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。
在此,所述计算机设备和/或云仅为举例,其他现有的或者今后可能出现的设备和/或资源共享平台如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
在该实施例中,在所述步骤S11中,设备1获取到需要调用的可执行程序的带入参数,其中,该带入参数根据具体的运维需求预先确定。例如,sqlplus是oracle数据的一个客户端可执行程序,经常需要带入登录用户名、密码、目标机IP等参数。若设备1直接使用open函数,调用带登录用户名、密码、目标机IP等参数的sqlplus,只能打开sqlplus程序,无法带入参数,与目标机成功连接。
可选地,其中,所述步骤S11还包括:
将获取到的所述预设参数保存到文件中。
其中,对于经常或重复使用的预设带入参数,可以保存为参数文件,保存在堡垒机中,所述参数文件可以是txt或者其它格式的文件,在此不作限定,任何其他文件格式如适用本申请也应包含在本申请的保护范围内。
可选地,其中,所述将获取到的所述预设参数保存到文件中包括:
将所述预设参数进行加密,其中,加密的方式是可逆的;
将加密后的预设参数保存到文件中。
为了保证预设参数在传输过程中的安全,可以将获取到的预设参数进行加密,其中,加密的方式是可逆的。例如,使用base64_encode和base64_decode函数作为可逆的加密和解密工作函数,将获取的预设参数用base64_encode编码,并将编码得到字符串进行分拆,组成新的字符串以实现加密。解密过程则是把加密字符串进行逆向分拆,恢复成原来生成的base64_encode编码,再用base64_decode函数对该编码进行解码,实现解密。本申请对所述加密的方式不作限定,任何其他加密方式如适用本申请也应包含在本申请的保护范围内。
可选地,其中,在所述步骤S12之前,所述方法还包括:
从所述文件中获取所述加密后的预设参数;
对所述加密后的预设参数进行解密,以获取所述预设参数,其中,解密的方式与所述加密的方式互相可逆。
继续在该实施例中,在所述步骤S12中,设备1创建命令行工程,在所创建的命令行工程中包含调用命令,其中,该调用命令中包含预设参数及可执行程序,以基于该预设参数执行该可执行程序。例如,安装了MAC系统的设备1自带集成开发工具Xcode,其中包括命令行工具CommandLineTools(新一代MAC系统为Yosemite,CommandLineTools可单独安装,不需要安装集成开发工具Xcode也可),使用CommandLineTools创建一个新的命令行工程,在该命令行工程中,调用执行sqlplus的命令,该命令包含被执行程序sqlplus名称及其带入的预设参数。
继续在该实施例中,在所述步骤S13中,设备1创建好所述命令行工程后,编译所述命令行工程,以获得所述命令行工程对应的命令行可执行程序。例如,设备1使用CommandLineTools创建好一个包含被执行程序sqlplus名称及其带入的预设参数的调用执行sqlplus的命令,编译该命令行工程,获得该命令行工程对应的命令行可执行程序。
继续在该实施例中,在所述步骤S14中,设备1调用编译后的所述命令行可执行程序,即可实现对所述待参数可执行程序的调用,实现运维目标。例如,安装了MAC系统的设备1使用系统自带的open函数,通过open函数调用包含被执行程序sqlplus名称及其带入的预设参数的调用执行sqlplus的命令的命令行可执行程序,即可实现对sqlplus及其带入参数的调用,确保sqlplus成功连接到目标机,实现sqlplus的运维目标。
可选地,其中,所述带参数可执行程序包括使用系统自带的open函数无法使带入参数生效的可执行程序。
例如,sqlplus是oracle数据的一个客户端可执行程序,sqlplus需要带入登录用户名、密码、目标机IP等参数,设备1直接使用open函数,调用带登录用户名、密码、目标机IP等参数的sqlplus,只能打开sqlplus程序,无法带入参数,与目标机成功连接。
图2示出根据本申请另一个方面的一种用于调用带参数可执行程序的设备示意图,其中,所述设备包括:
第一装置21,用于获取所述带参数可执行程序的预设参数;
第二装置22,用于创建包含被调用命令的命令行工程,其中,所述被调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序;
第三装置23,用于编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序;
第四装置24,用于调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。
在该实施例中,所述设备与设备1相同。
其中,设备1的第一装置21获取带参数可执行程序的预设参数,接着设备1的第二装置22创建包含被调用命令的命令行工程,其中,所述被调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序,然后设备1的第三装置23编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序,最后设备1的第四装置24调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。可实现可执行程序带入参数的执行。
根据本申请的又一方面,还提供了一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
根据本申请的又一方面,还提供了一种用于优化预测雷达回波图像的设备,其中,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:获取所述带参数可执行程序的预设参数;创建包含调用命令的命令行工程,其中,所述调用命令包含所述预设参数及所述可执行程序,用于基于所述预设参数执行所述可执行程序;编译所述命令行工程,以获取所述命令行工程对应的命令行可执行程序;调用所述命令行可执行程序,以实现对所述带参数可执行程序的调用。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
- 一种用于调用带参数可执行程序的方法与设备
- 一种用于调用远程Java对象的软件应用方法的方法、计算设备以及系统