命令行参数

解析命令行参数

你离开我真会死。 提交于 2020-01-25 18:10:13
#include <stdio.h> #include<string.h> #define CFG_MAXARGS 10 //parse_line函数参考uboot源码 static int parse_line (char *line, char *argv[]) { int nargs = 0; while (nargs < CFG_MAXARGS) { /* skip any white space */ while ((*line == ' ') || (*line == '\t')) { ++line; } if (*line == '\0') { /* end of line, no more args */ argv[nargs] = NULL; return (nargs); } argv[nargs++] = line; /* begin of argument string */ /* find end of string */ while (*line && (*line != ' ') && (*line != '\t')) { ++line; } if (*line == '\0') { /* end of line, no more args */ argv[nargs] = NULL; return (nargs); } *line++ = '\0';

golang 命令行参数

て烟熏妆下的殇ゞ 提交于 2020-01-23 10:41:45
os.Args 是一个 string 切片,用来存储所有命令行参数。 /** * @Author: v_bivwei * @Description: * @Date: 2020/1/19 11:20 */ package main import ( "fmt" "os" ) func main() { fmt.Println("命令行参数有 ", len(os.Args), "个") for index, val := range os.Args { fmt.Println("索引为 ", index, "值为 ", val) } } 解析带有指定参数形式的命令行参数 /** * @Author: v_bivwei * @Description: * @Date: 2020/1/19 11:29 */ package main import ( "flag" "fmt" ) func main() { var user string var pwd string flag.StringVar(&user, "u", "", "用户名") flag.StringVar(&pwd, "p", "", "密码") flag.Parse() fmt.Println("用户名为 ", user, "密码为 ", pwd) } 要有空格隔开 来源: CSDN 作者: 卩杉 链接: https:

linux 中解析命令行参数 (getopt_long用法)

北城余情 提交于 2020-01-18 12:47:04
From http://blog.csdn.net/ast_224/article/details/3861625 getopt_long支持长选项的命令行解析,使用man getopt_long,得到其声明如下: #include <getopt.h> int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex); int getopt_long_only(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex); 说明:函数中的argc和argv通常直接从main()到两个参数传递而来。optsting是选项参数组成的字符串,如 果该字符串里任一字母后有冒号,那么这个选项就要求有参数。下一个参数是指向数组的指针,这个数组是 option结构数组,option结构称为长选项表,其声明如下: struct option { const char *name; int has_arg; int *flag; int val; }; 结构中的元素解释如下: const

解决sys.argv[1]出现IndexError: list index out of range 问题和使用Argparse模块的正确方法

China☆狼群 提交于 2020-01-18 02:21:17
解决 sys.argv[1]出现IndexError: list index out of range 问题的正确方法 argv[1]:sys.argv[]是用来获取命令行参数的,需要你从电脑终端输入所需参数以备程序运行,就像C语言中const限定符一样,只需要在前面给出:const int DAY = 10,后面所有涉及到变量DAY的地方只需要在前面将10改为其他数字即可,不需要在代码中一一修改。 言归正传,对于命令行参数也是如此,代码写好后保存即可,运行时需要在电脑终端给出参数,具体操作如下: (1) 电脑左下角windows开始搜索栏中输入cmd进入终端; (2) 切换到你保存代码的文件夹路径。我的代码保存在G盘的Python文件夹里,所以先输入"g:",enter键后然后输入"cd Python",enter键确认。 (3) 开始输入参数。格式为“python”+空格+“文件名.py”+空格+“参数(大多数为图片或视频路径)”,然后enter键运行即可。 如果为多个参数,在输入参数时先输入参数简写+空格+路径。 下图为多个参数,圈出来的为参数简写,代码中也需要有简写,否则不能运行,适合下面这种代码。 注意我贴的代码图和终端图不是同一程序,不要误解,所以终端里面是-i(input)和-o(output)。 以上为命令行参数的使用方法,argparse模块的用法与此一致

Linux学习——shell编程

旧城冷巷雨未停 提交于 2020-01-17 06:54:20
LINUX-----shell编程(脚本shell) Shell的种类 1.sh 2.ksh 3.bash 4.C shell(包括csh and tcsh) 5.tcsh shell的概念 shell提供了你与操作系统之间的通讯方式,这种通讯方式可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,他们可以被重复使用。 本质上,shell script是命令行命令简单的组合到一个文件里面 程序基础 程序必须以下面的行开始(必须放在一个文件的第一行): #!/bin/sh #!用来告诉系统他后面的参数是用来执行该文件的程序 要使脚本可以执行: chmod +x filename 然后,您可以通过输入: ./filename 来执行您的脚本文件 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。建议在程序中使用注释,那么即使相当长的时间没有使用该脚本,您也可以在很短的时间内明白该脚本的作用及工作原理。 变量 在其他编程语言中必须使用变量。在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明。要赋值给一个变量,可以这样写: 变量名=值 取出变量值可以加一个美元符号(¥)(实际是shift+4)在变量前面 变量赋值时,“=”两边都不能有空格

四则运算生成器项目

一世执手 提交于 2020-01-15 07:54:18
项目设计 1.项目链接以及队友博客链接 2.预计时间表格 3. 解题思路描述 3.1 项目要求 3.1.1 第一阶段 3.1.2 第二阶段 3.1.3 第三阶段 3.2 思考过程 3.2.1 生成表达式 3.2.2 求解表达式 3.2.3 图形界面,倒计时,历史记录 4. 设计实现过程 4.1 类模块说明 4.1.1 Num类 4.1.2 ExpressionBuilder类 4.1.3 Expression类 4.1.4 Main 4.2 程序执行流程图 1.项目链接以及队友博客链接 项目链接: https://github.com/AmnesiaWu/AutoCal 队友博客链接: 2.预计时间表格 PSP2.1 Personal Software Process Stages 预估耗时 (分钟) 实际耗时(分钟) Planning 计划 30 Estimate 估计这个任务需要多少时间 30 Development 开发 1930 Analysis 需求分析(包括学习新技术) 90 Design Spec 生成设计文档 60 Design Review 设计复审(和同事审核设计文档) 30 Coding Standard 代码规范(为目前的开发制定合适的规范) 30 Design 具体设计 120 Coding 具体编码 1200 Code Review 代码复审 60

main函数与命令行参数

廉价感情. 提交于 2020-01-15 05:42:21
文章目录 1 main函数的概念 1.1 main函数的概念 1.2 main函数的原型 1.3 main函数的参数 1.4 main函数不一定是第一个执行的程序 1 main函数的概念 1.1 main函数的概念 main函数: C语言中的main函数称之为主函数。 一个C程序是从main函数开始执行的。 main函数是操作系统调用的函数。 操作系统总是将main函数作为应用程序的开始。 操作系统将main函数的返回值作为程序的退出状态。 1.2 main函数的原型 如下几种main函数的定义均为正确的: 1.3 main函数的参数 程序执行时可以向main函数传递参数。 gcc编译器的常见用法: main函数的参数: # include <stdio.h> int main ( int argc , char * argv [ ] , char * env [ ] ) { int i = 0 ; printf ( "============== Begin argv ==============\n" ) ; for ( i = 0 ; i < argc ; i ++ ) { printf ( "%s\n" , argv [ i ] ) ; } printf ( "============== End argv ==============\n" ) ; printf ( "

内核的命令行参数

泄露秘密 提交于 2020-01-11 18:45:36
内核将内核命令行的参数解析为“-‌-”。如果内核不识别参数,也不包含“.”,那么参数会被传递给init:带“=”的参数会被传递给init环境,其他会作为命令行参数传递给init。“ -‌- ”之后的所有内容都作为参数被传递给init。 可以通过两种方式指定模块参数:通过带有模块名称前缀的内核命令行,或通过modprobe,例如: (kernel command line) usbcore.blinkenlights=1 (modprobe command line) modprobe usbcore blinkenlights=1 内置在内核中的模块的参数需要在内核命令行上明确规定。modprobe查看内核命令行(/proc/cmdline)并在加载模块时收集模块参数,因此内核命令行也可用于可加载模块。 参数名称中的连字符(破折号)和下划线相同,因此: log_buf_len=1M print-fatal-signals=1 也可以输入为: log-buf-len=1M print_fatal_signals=1 双引号可用于保护值中的空格,例如: param="spaces in here" CPU列表 一些内核参数将CPU列表作为值,例如isolcpus,nohz_full,irqaffinity,rcu_nocbs。该列表的格式为: <cpu number>,…,<cpu

getopts命令行参数处理

不问归期 提交于 2020-01-11 05:32:36
本文转载自: https://www.cnblogs.com/xiangzi888/archive/2012/04/03/2430736.html 作者:xiangzi888 转载请注明该声明。 一、getopts 简介   由于shell 命令行 的灵活性,自己编写代码判断时,复杂度会比较高。使用内部命令 getopts 可以很方便地处理命令行参数。一般格式为: getopts options variable   getopts 的设计目标是在循环中运行,每次执行循环,getopts 就检查下一个命令行参数,并判断它是否合法。即检查参数是否以 - 开头,后面跟一个包含在 options 中的字母。如果是,就把匹配的选项字母存在指定的变量 variable 中,并返回退出状态0;如果 - 后面的字母没有包含在 options 中,就在 variable 中存入一个 ? ,并返回退出状态0;如果命令行中已经没有参数,或者下一个参数不以 - 开头,就返回 不为0 的退出状态。 二、使用举例 cat args # !/bin/bash while getopts h:ms option do case " $option " in h) echo "option:h, value $OPTARG " echo "next arg index: $OPTIND ";; m) echo

C Primer Plus 第11章 11.8 命令行参数

拥有回忆 提交于 2020-01-07 15:14:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 现代的图形界面出现之前是命令行界面 。Dos和Unix就是例子。 命令行(command line)是在一个命令行环境下,用户输入的用于运行程序的行。 假定有一个程序在名为fuss 的文件中,那么在UNIX下运行该程序的命令行如下: $ fuss 或者在windows命令行模式下,如windows xp命令提示符: c> fuss 命令行参数(command-line argument)是同一行中的附加项。如下例: % fuss -r Ginger 一个C程序可以读取这些附加项为自己所用。 C程序通过使用main()的参数读取这些项目 。程序清单11.27给出了一个典型的例子。 程序清单11.27 repeat.c程序 /*repeat.c --带有参数的main()函数*/ #include <stdio.h> int main (int argc,char * argv[]) { int count; printf("The command line has %d arguments: \n",argc - 1); for (count=1;count<argc;count++) printf("%d: %s\n",count,argv[count]); printf("\n"); return 0; }