C语言
在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数.
argc 为 int 类型, 表示传入命令行参数的个数 (argument count);argv 为 char** 类型, 表示命令行参数向量 (argument vector), 每个命令行参数为字符串类型, 因此 参数 argv
也可以看做是字符串数组.
示例代码如下:
/** filename: pass_args.c* This code is modified a little according to the Arun's answer in /questions/3898021/regarding-mainint-argc-char-argv*/#include <stdio.h>int main(int argc, char *argv[]){int i = 0;printf(" argc = %d\n", argc);for (; i < argc; ++i) {printf(" argv[ %d ] = %s\n", i, argv[i]);}return 0;}
编译命令为
$ gcc pass_args.c -o pass_args
运行命令及结果如下:
$ ./pass_args arg1 arg2 3argc = 4argv[ 0 ] = ./pass_argsargv[ 1 ] = arg1argv[ 2 ] = arg2argv[ 3 ] = 3
Python 语言
Python 语言可以使用 sys 模块中的 argv 变量, 实现相似的功能. 如果需要更高级的命令行参数传递方式, 可以使用 argparse 模块. 使用 sys.argv 的示例代码如下:
'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''#!/usr/bin/env python# -*- coding: utf8 -*-from __future__ import print_functionimport sysif __name__ == '__main__':print ('The argument count is %d.' % len(sys.argv))print ('The argument vectors: ')for i, arg in enumerate(sys.argv):print (' argv[ %d ] = %s' % (i, arg))
运行命令及结果如下:
$ python pass_args.py arg1 arg2 3The argument count is 4.The argument vectors: argv[ 0 ] = pass_args.pyargv[ 1 ] = arg1argv[ 2 ] = arg2argv[ 3 ] = 3