服务计算03——Golang开发CLI命令行实用程序

本文介绍了如何使用Golang开发名为Selpg的CLI工具,该工具允许用户从文本输入中选择特定页面范围进行操作。Selpg遵循Linux命令行工具的约定,支持在管道中作为组件工作,接受命令行选项来定制行为。文章详细讲解了Selpg的功能,包括页面范围选择、不同类型的文本输入处理以及直接打印输出的选项,并给出了多个测试示例。
摘要由CSDN通过智能技术生成

CLI(Command Line Interface)实用程序是Linux下应用开发的基础。Linux提供了cat、ls、copy等命令与操作系统交互;go语言提供一组实用程序完成从编码、编译、库管理、产品发布全过程支持。在开发领域,CLI在编程、调试、运维、管理中提供了图形化程序不可替代的灵活性与效率。

Selpg功能概述

  • selpg 是从文本输入选择页范围的实用程序。它从标准输入或从作为命令行参数给出的文件名读取文本输入,允许用户指定来自该输入并随后将被输出的页面范围。在很多情况下,可以避免打印浪费,节省了资源。
  • 如用如下的命令,将需要的页面打印出来
$ selpg -s 1 -e 2 input.txt //将input.txt的第一页到第二页输出到屏幕
  • selpg 是以在 Linux 中创建命令的事实上的约定为模型创建的,这些约定包括:

    • 独立工作
    • 在命令管道中作为组件工作(通过读取标准输入或文件名参数, 以及写至标准输出和标准错误)
    • 接受修改其行为的命令行选项

Selpg程序逻辑

“-sNumber”和“-eNumber”强制选项:

selpg 要求用户用两个命令行参数“-sNumber”(例如,“-s10”表示从第 10 页开始)和“-eNumber”(例如,“-e20”表示在第 20 页结束)指定要抽取的页面范围的起始页和结束页。selpg 对所给的页号进行合理性检查;换句话说,它会检查两个数字是否为有效的正整数以及结束页是否不小于起始页。这两个选项,“-sNumber”和“-eNumber”是强制性的,而且必须是命令行上在命令名 selpg 之后的头两个参数

  • 程序实现:
if args[1][0] != '-' || args[1][1] != 's' {
   
		fmt.Fprintf(os.Stderr, "%s: Please use format: -s number\n", progname)
		os.Exit(1)
	}
	//获取开始页
	start, _ := strconv.Atoi(args[1][2:])
	if start < 1 {
   
		fmt.Fprintf(os.Stderr, "%s: Start page cannot be %d\n", progname, start)
		os
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值