1、概述

CLI(命令行界面)实用程序是Linux下应用开发的基础。正确的编写命令行程序让应用与操作系统融为一体,通过shell或脚本来获得最大的扩展与开发效率。Linux提供了cat ,ls,copy等命令与操作系统交互; go语言提供单个实用程序完成从编码,编译,库管理,产品发布全过程支持;容器服务如docker,k8s提供实用程序支持云服务的开发,部署,监控,访问等管理任务; git,npm等都是大家比较熟悉的工具。尽管操作系统与应用系统服务可视化,图形化,但在开发领域,CLI在编程,调试,运维,管理中提供了图形化程序不可替代的附加与效率。

2、开发实践

  • 程序说明

使用golang开发开发Linux命令行实用程序中的selpg.

selpg这个命令行应用是一个通过指定页来读取输入的文本的程序,这些输入文本可以来自文件或者是另一个进程。
由于这次所要完成的程序是一个命令行程序,遵循命令行程序的基本执行顺序,基本的执行逻辑就是

  • 输入命令->处理参数->判断参数是否规范->读取文件->根据参数处理文件->执行输出。

在执行这一系列的操作过程中,都需要对各种情况进行错误抛出并进行报错,进而终止流程。
一个命令行程序要遵守五个准则:准则 1. 输入。准则 2. 输出。准则 3. 错误输出。准则 4. 执行。准则 5. 命令行参数

  • 程序执行结果
    这里我使用的是一个含有1-1500每行一个数字的文档,并每隔五十行含有一个换页符,使用简单的c++程序完成。
#include<iostream>
using namespace std;

int main(){
	for (int i=1;i<1501;i++){
		if((i%50)==0) cout<<"\f"<<endl;
		cout<<i<<endl;
	}
}

1、selpg -s1 -e1 input_file
在这里插入图片描述
2、selpg -s1 -e1 < input_file
在这里插入图片描述
3、selpg -s10 -e20 input_file >output_file
在这里插入图片描述
4、selpg -s10 -e20 input_file 2>error_file
在这里插入图片描述
由于没有错误代码所以error_file中没有信息。
在这里插入图片描述
5、selpg -s10 -e20 input_file >output_file 2>error_file

在这里插入图片描述

6、selpg -s10 -e20 input_file >output_file 2>/dev/null

selpg 将第 10 页到第 20 页写至标准输出,标准输出被重定向至“output_file”;selpg 写至标准错误的所有内容都被重定向至 /dev/null(空设备),这意味着错误消息被丢弃了。设备文件 /dev/null 废弃所有写至它的输出,当从该设备文件读取时,会立即返回 EOF。
输出结果与上图相同。

7、selpg -s10 -e20 input_file >/dev/null

selpg 将第 10 页到第 20 页写至标准输出,标准输出被丢弃;错误消息在屏幕出现。这可作为测试 selpg 的用途,此时您也许只想(对一些测试情况)检查错误消息,而不想看到正常输出。
在这里插入图片描述
可以看到无错误信息显示。

8、selpg -s10 -e20 -l66 input_file
在这里插入图片描述
9、selpg -s10 -e20 -f input_file
在这里插入图片描述
10、selpg -s10 -e20 input_file > output_file 2>error_file &
在这里插入图片描述
程序的源码与测试文件详见GitHub:https://github.com/lichen2333/Service_Computing/tree/master/work/src/github.com/selpg

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐