17.3 命令行-POSIX特性、安装与分享

1. POSIX特性

在Linux和macOS系统中,大多数命令行工具都要求以推荐标准POSIX指定的方式传递命令行参数。

POSIX即UNIX可移植操作系统接口(Portable Operating System Interface of UNIX)是一套标准,旨在确保操作系统之间彼此兼容。

很多开发人员也希望自己编写的命令行程序能够与POSIX标准保持兼容。

虽然Go语言的flag包并没有遵循POSIX标准,但还是有一些兼容该标准的第三方替代品可供选择,其中之一就是pflag包,其使用方法与flag包几乎一样。

2. 安装与分享

当命令行程序编写好以后,还需要将其安装系统中,这样就可以在任何位置运行它,而不仅限于go build编译生成的二进制可执行文件所在的目录中。

正确地设置GOPATH,并将项目文件夹放在它的一个名为src的子文件夹中:

  • [GOPATH]/src/cli/install/gopher/main.go

执行如下命令将命令行程序gopher安装到系统中:

  • go install cli/install/gopher

如果一切顺利,最终的二进制可执行程序应被安装到[GOPATH]/bin目录中(名称以项目目录名称命名):

  • [GOPATH]/bin/gopher.exe

由于[GOPATH]/bin已在PATH环境变量中,可在任何位置运行gopher程序。

// [GOPATH]/src/cli/install/gopher/main.go 
// go install cli/install/gopher
//
// [GOPATH]/bin/gopher.exe
// gopher	即可运行相应程序package mainimport "fmt"func main() {fmt.Println("Hurray! You are a Gopher!")
}[GOPATH]├──src/│   └──cli/│       └──install/│            └──gopher/│                  └──main.go └──bin/└──gopher.exe// 打印输出:
Hurray! You are a Gopher! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/24058.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java进阶——JVM 与 Java 体系结构详解

文章目录 1.JVM 与 Java 体系结构1.1. 前言1.1.1. 开发人员如何看待上层框架1.1.1. 我们为什么要学习 JVM?1.1.2. Java vs C 1.2. Java 及 JVM 简介1.2.1. JVM:跨语言的平台1.2.1. 字节码1.2.2. 多语言混合编程 1.3. 虚拟机与 Java 虚拟机1.3.1. 虚拟机1…

vue 弹出框组件重复打开时,资源重新加载

新增或者编辑内容使用同一个弹出框&#xff0c;如何使数据可以重新加载&#xff1f; 1、绑定时间戳&#xff0c;有副作用&#xff0c;屏幕会闪烁一下 <el-dialog :key"timer" > </el-dialog> 2、v-if和:visible.sync同时使用 <el-dialogv-if"…

沃尔沃Volvo EDI:运输标签测试流程

对接Volvo的EDI项目中&#xff0c;需要按照以下流程完成测试&#xff1a; 1.创建EDI连接并且传输第一个交付计划 2.请求发货通知以及运输标签 3.反馈关于发货通知以及运输标签的细节 4.使用生产数据进行最终的验证 在Volvo EDI项目案例中&#xff0c;详细介绍了有关连接测试以…

25届最近5年南京航空航天大学自动化考研院校分析!

南京航空航天大学 一、学校学院专业简介 二、考试科目指定教材 1、考试科目介绍 2、指定教材介绍 三、近5年考研分数情况 以下为南京航空航天大学&#xff0c;自动化学院近几年的考研分数情况。 以下为南京航空航天大学&#xff0c;航天学院近几年的考研分数情况。 以下为南京…

2710. 移除字符串中的尾随零

给你一个用字符串表示的正整数 num &#xff0c;请你以字符串形式返回不含尾随零的整数 num 。 示例 1&#xff1a; 输入&#xff1a;num "51230100" 输出&#xff1a;"512301" 解释&#xff1a;整数 "51230100" 有 2 个尾随零&#xff0c;移除…

React -- memo允许你的组件在 props 没有改变的情况下跳过重新渲染。

memo(Component, arePropsEqual?) 使用 memo 将组件包装起来&#xff0c;以获得该组件的一个 记忆化 版本。通常情况下&#xff0c;只要该组件的 props 没有改变&#xff0c;这个记忆化版本就不会在其父组件重新渲染时重新渲染。但 React 仍可能会重新渲染它&#xff1a;记忆化…

内容产品运营方案业务架构解析与实践探索

### 背景 在信息爆炸的时代背景下&#xff0c;内容产品运营成为各行各业竞争的重要环节。构建合理的内容产品运营方案业务架构&#xff0c;能够帮助企业更好地管理内容生产、推广和变现&#xff0c;提升品牌影响力和商业价值。 ### 业务架构设计 #### 1. 内容生产与管理 建立…

Chrome Plugin静态页面触发CSP如何解决CSP

CSP 内容安全策略 (Content Security Policy)&#xff1a; 内容安全策略是一种计算机安全标准&#xff0c;旨在防御跨站脚本、点击劫持等代码注入攻击&#xff0c;阻止恶意内容在受信网页环境中执行。 Manifest V3 对于内容安全策略有一些默认的设置&#xff0c;如禁止外部代码…

漏洞挖掘 | 记一次信息泄露到登入后台

这次是项目上遇到的一个洞&#xff0c;打开页面是一个红红的登录页面 这里就不放图了&#xff0c;浓浓的红色气息~ 老样子抓登录包 虽然是明文传输但是爆破弱口令无果 f12大法&#xff0c;审计源代码&#xff0c;在其中一个js文件中发现了这个接口 拼接URL进行访问 感觉有点东…

Python与CMD的交织之旅:探索、挑战与突破

Python与CMD的交织之旅&#xff1a;探索、挑战与突破 在编程的世界中&#xff0c;Python以其简洁明了的语法和强大的功能库赢得了广大开发者的青睐。而CMD&#xff0c;作为Windows操作系统的命令行工具&#xff0c;也是程序员们进行各种操作的重要工具。那么&#xff0c;Pytho…

微信小程序和支付宝小程序生成二维码

描述&#xff1a;前端生成二维码 一、页面 <canvas type"2d" style"width: 312px; height: 312px;" id"myQrcode"></canvas>二、微信小程序 安装 weapp-qrcode-canvas-2d 官方文档传送门 const query wx.createSelectorQuery()…

优质域名怎么注册?

在数字化时代&#xff0c;一个优质的域名对于企业和个人品牌的重要性不言而喻。它不仅能够提升品牌形象&#xff0c;还能带来可观的流量和潜在客户。然而&#xff0c;注册一个优质域名并非易事&#xff0c;它需要策略和技巧。本文将探讨如何注册一个优质域名&#xff0c;包括选…

qgroundcontrol编程入门:探索无人机控制的新境界

qgroundcontrol编程入门&#xff1a;探索无人机控制的新境界 在无人机技术的飞速发展下&#xff0c;qgroundcontrol作为一款强大的地面控制站软件&#xff0c;逐渐成为了无人机开发者和爱好者们的首选工具。然而&#xff0c;对于初学者而言&#xff0c;qgroundcontrol的编程入…

二、electron 的 BrowserWindow 的属性

const { app, BrowserWindow } require(electron)function createWindow() {let mainWin new BrowserWindow({x: 100,y: 100, //设置窗口的显示位置&#xff0c;相对于当前屏幕的左上角 show: true, //默认情况下创建一个窗口对象之后就会显示&#xff0c;设置为false&#x…

移动性:mobility

移动性管理原理 什么是移动性 一些术语 移动性管理办法 让网络&#xff08;路由器&#xff09;处理移动性&#xff1a;路由器通过常规路由表发送交换节点的永久地址 路由器互相交换各自移动节点位置信息&#xff0c;路由系统定期会通告自己这边新移动过来的移动设备信息端系统…

Spark大数据 IDEA开发词频统计项目

在使用IntelliJ IDEA进行Spark大数据项目的开发时&#xff0c;词频统计&#xff08;Word Count&#xff09;是一个常见的入门项目。以下是一个基本的步骤指南&#xff0c;用于在IDEA中创建和运行一个Spark词频统计项目&#xff1a; 1. 设置开发环境 确保你已经安装了以下软件…

【Linux】系统优化:一键切换软件源与安装Docker

引言 在Linux系统安装完成后&#xff0c;进行一些必要的初始化设置是提升系统性能和用户体验的关键。本文将重点介绍两个实用的一键脚本&#xff1a;LinuxMirrors提供的软件源切换脚本和Docker安装脚本。这两个脚本将帮助我们简化配置安装过程。 一键切换软件源脚本 在Linux…

前端之npm运行时配置文件.npmrc(可用于配置npm淘宝源)

文章目录 前端之npm运行时配置文件.npmrc什么是.npmrc设置项目配置文件设置用户配置文件设置全局配置文件给npm 命令添加注册源选项 前端之npm运行时配置文件.npmrc 什么是.npmrc 官网&#xff1a;https://nodejs.cn/npm/cli/v7/configuring-npm/npmrc/ .npmrc&#xff0c;可…

【0286】Postgres内核 shared buffer pool 初始化实现

0. 前言 Postgres内核中shared buffer的初始化过程是在buf_init.c(缓冲区管理器初始化例程,src/backend/storage/buffer)源文件中实现的。 该文件中的几个注释值得重视: Data Structures(数据结构) 缓冲区位于freelist和查找数据结构中。 Buffer Lookup(缓存查找) 两…

QT 和VS 针对linux开发的不同

1.qt 简介 Qt是一个跨平台的C图形用户界面应用程序开发框架&#xff0c;由Qt Company开发。它最初由挪威的Trolltech公司开发&#xff0c;后被诺基亚收购&#xff0c;并在2012年再次被Digia收购。Qt框架提供了丰富的功能和工具&#xff0c;使开发者能够更快速、更高效地创建各…