命令行参数

boost库中的program_options

放肆的年华 提交于 2020-03-02 16:57:04
本文基本从官方文档中摘录出来的,便于查看。 官方文档:https://www.boost.org/doc/libs/1_57_0/doc/html/program_options.html Github:https://github.com/boostorg/program_options.git 简介 boost库时c++常用的工具库,地位仅次于c++标准库,Boost库的掌握是C++工程师的基本要求。 boost.program_options是用于命令行参数解析的,类似于optarg的作用,但是其还可以读取配置文件、环境变量。 优点: 使用更容易。定义参数处理的语法简单,库自身很小,比如转换参数值到指定的类型和保存参数值到变量的事情都是自动处理。 错误报告更友好。可报告错误的命令行参数,库能自动生成使用帮助,避免手工更新使用帮助导致的不一致。 参数能从不同的地方读取,当命令行参数不能满足要求,需要改用配置文件或环境变量,这些功能都能支持,代码改动很小。 使用示例 示例1 只处理两个选项,一个无参和一个有整数参数 program_options/example/first.cpp // Copyright Vladimir Prus 2002-2004. // Distributed under the Boost Software License, Version 1.0.

Linux常用命令--xargs

耗尽温柔 提交于 2020-02-29 02:13:22
我们可以用管道将一个命令的stdout(标准输出)重定向到另一个命令的stdin(标准输入),如: $ cat foo.txt | grep "test" 解析:查看foo.txt文件并打印出含有test的行。 但是有些命令只能以命令行参数的形式接受数据,而无法通过stdin接受数据流。在这种情况下,我们没法用管道来提供哪些只有通过命令行参数才能提供的数据。 那现在就该xargs上场了,它擅长将标准输入数据转换成命令行参数。 预备知识: xargs命令应该紧跟在管道操作符之后,以标准输入作为主要的源数据流,它使用stdin并通过提供命令行参数来执行其他命令。xargs命令把从stdin接收到的数据重新格式化,再将其作为参数提供给其他命令。 一、将多行输入转换成单行输出 $ cat foo.txt # 样例文件 1 2 3 3 4 5 7 8 9 10 11 12 $ cat foo.txt | xargs 1 2 3 4 5 6 7 8 9 10 11 12 二、 将单行输入转换为多行输出 $ cat foo.txt | xargs -n 3 1 2 3 4 5 6 7 8 9 10 11 12 解析:指定每行最大的参数数量n,将任何来自stdin的文本划分成多行,每行n个参数。 xargs默认的定界符是空格,我们自己可以来设置定界符,用-d选项为输入指定一个定制的定界符。 $

WinRAR命令行参数[原]

这一生的挚爱 提交于 2020-02-26 15:46:30
在项目中,需打包,每次使用打包工具很麻烦,直接在生成目录下使用exe就可以了,故编写一个.bat文件来处理就可以了,如下: 将生成文件BOMEXE.exe. 1 @echo off 2 echo Starting Make BOM update package 3 echo ----------------------------------------------------- 4 echo 1 . Create temp directory: temp 5 rd / S / Q temp 6 7 md temp 8 md temp\config 9 md temp\dll 10 11 echo 2 . Copy files 12 13 copy config\AmountButtonInfo.xml temp\config\AmountButtonInfo.xml 14 copy config\MessageDef.cfg.xml temp\config\MessageDef.cfg.xml 15 copy config\NSICUState.xml temp\config\NSICUState.xml 16 copy config\Template.xml temp\config\Template.xml 17 copy config\UIFunctions.xml temp

mysql 命令行参数

那年仲夏 提交于 2020-02-26 10:15:50
Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //显示帮助信息并退出 -I, --help //显示帮助信息并退出 --auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子 -A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能 -B, --batch //ysql不使用历史文件,禁用交互 (Enables --silent) --character-sets-dir=name //字体集的安装目录 --default-character-set=name //设置数据库的默认字符集 -C, --compress //在客户端和服务器端传递信息时使用压缩 -#, --debug[=#] //bug调用功能 -D, --database=name //使用哪个数据库 --delimiter=name //mysql默认命令结束符是分号,下面有例子 -e, --execute=name //执行mysql的sql语句 -E, --vertical //垂直打印查询输出 -f, --force //如果有错误跳过去,继续执行下面的 -G, --named-commands /*Enable named commands. Named

Spring Boot 2 - 使用CommandLineRunner与ApplicationRun

旧城冷巷雨未停 提交于 2020-02-26 05:29:58
本篇文章我们将探讨CommandLineRunner和ApplicationRunner的使用。 在阅读本篇文章之前,你可以新建一个工程,写一些关于本篇内容代码,这样会加深你对本文内容的理解,关于如何快速创建新工程,可以参考我的这篇博客: Spring Boot 2 - 创建新工程 概述 CommandLineRunner和ApplicationRunner是Spring Boot所提供的接口,他们都有一个run()方法。所有实现他们的Bean都会在Spring Boot服务启动之后自动地被调用。 由于这个特性,它们是一个理想地方去做一些初始化的工作,或者写一些测试代码。 CommandLineRunner 使用Application实现 在我们新建好工程后,为了简单我们直接使用Application类实现CommandLineRunner接口,这个类的注解@SpringBootApplication会为我们自动配置。 package cn.examplecode.sb2runner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.CommandLineRunner; import org.springframework.boot

命令行参数————(int argc,char *argv[])

寵の児 提交于 2020-02-25 21:38:22
命令行参数————(int argc,char *argv[]) C 编译器运行 main() 没有参数或者有两个参数(一些实现允许 main() 有更多参数,属于对标准的扩张) 。 main() 函数有两个参数时,第一个参数是命令行中的字符串数量。过去,这个 int 类型的参数被称为 argc ( 表示参数计数 : arguemnet count )。系统用空格表示一个字符串的结束和下一个字符串的开始。 命令行字符串存储在内存中,而字符串的地址存储在指针数组中。而该数组的地址则被存储在 main() 的第二个参数中。按照惯例,这个指向指针的指针称为 argv ( 表示参数值 [ arguement value ])。 main() 函数中的形式参数与其它带形参的函数相同。许多程序员用不同的形式声明 argv : int main ( int argc , char * * argv ) char **argv 与 char *argv[] 等价,也就是说, argv 是一个指向指针的指针,它所指向的指针指向 char 。因此,即使在原始定义中, argv 也是指向指针的指针。两种形式都可以使用,但我们认为第一种形式更清楚的表明 argv 表示一系列字符串。 来源: CSDN 作者: Masschusates 链接: https://blog.csdn.net/qq

Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

心不动则不痛 提交于 2020-02-25 12:04:39
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。 请看下面的脚本: #!/bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "First Parameter : $2" echo "Quoted Values: $@" echo "Quoted Values: $*" echo "Total Number of Parameters : $#" 运行结果: $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara

Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

蹲街弑〆低调 提交于 2020-02-25 12:04:11
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。 $# 传递给脚本或函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。 $? 上个命令的退出状态,或函数的返回值。 $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一个参数,$2 表示第二个参数,依次类推。 请看下面的脚本: #!/bin/bash echo "File Name: $0" echo "First Parameter : $1" echo "First Parameter : $2" echo "Quoted Values: $@" echo "Quoted Values: $*" echo "Total Number of Parameters : $#" 运行结果: $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara

GO标准库flag

淺唱寂寞╮ 提交于 2020-02-24 13:50:47
Go语言内置的flag包实现了命令行参数的解析。 os.Args os.Args是一个[]string类型。 获取命令参数示例: func main() { if len(os.Args) > 0{ for index,args := range os.Args{ fmt.Printf("args[%d]=%v\n", index, args) } } } $ go run main.go 1234 2434 546fd d fg args[0]=/x/main args[1]=1234 args[2]=2434 args[3]=546fd args[4]=d args[5]=fg os.Args是一个存储命令行参数的字符串切片,它的第一个元素是执行文件的名称。 flag包基本使用 flag参数类型 flag包支持的命令行参数类型有bool、int、int64、uint、uint64、float float64、string、duration。 flag.Type() flag.Type(flag名, 默认值, 帮助信息)*Type name := flag.String("name", "张三", "姓名") age := flag.Int("age", 18, "年龄") flag.TypeVar() flag.TypeVar(Type指针, flag名, 默认值, 帮助信息)

[转帖]xargs 命令教程

谁都会走 提交于 2020-02-21 08:10:58
xargs 命令教程 https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/103900639 xargs是 Unix 系统的一个很有用的命令,但是常常被忽视,很多人不了解它的用法。 本文介绍如何使用这个命令。 一、标准输入与管道命令 Unix 命令都带有参数,有些命令可以接受"标准输入"(stdin)作为参数。 $ cat /etc/passwd | grep root 上面的代码使用了管道命令(|)。管道命令的作用,是将左侧命令(cat /etc/passwd)的标准输出转换为标准输入,提供给右侧命令(grep root)作为参数。 因为grep命令可以接受标准输入作为参数,所以上面的代码等同于下面的代码。 $ grep root /etc/passwd 但是,大多数命令都不接受标准输入作为参数,只能直接在命令行输入参数,这导致无法用管道命令传递参数。举例来说,echo命令就不接受管道传参。 $ echo "hello world" | echo 上面的代码不会有输出。因为管道右侧的echo不接受管道传来的标准输入作为参数。 二、xargs 命令的作用 xargs命令的作用,是将标准输入转为命令行参数。 $ echo "hello world" | xargs echo hello world