不同语言的命令行参数

在批量运行脚本时,需要对脚本添加一些参数,针对这些参数,不同的计算给出了不同的方式。
总结SHELL脚本,Python的参数解析,R语言的批量运行方式以及脚本的参数。
命令行参数的形式
命令行参数的风格

Shell脚本的方式

1.shell脚本执行方式:exec(exec script.sh)、source(source script.sh)、fork(./script.sh)
2.传递参数方式
    bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。
        01.直接处理,依次对$1,$2,...,$n进行解析,分别手工处理;
        02.getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项);
        03.getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等)
        其中方式一中   $0表示脚本文件名。
            第一个参数用$1表示,第二个参数$2表示,。。。以此类推。
            另外一个在shell编程中经常用到 的是"$@ "这个代表所有的参数

Python方式

01.Python语言简单的解析 sys 模块 sys.argv
02.argparsepython用于解析命令行参数和选项的标准模块,用于解析命令行参数
命令行参数解析
    参数类型:
        定位参数,可选参数
        互斥参数组
        default - 不指定参数时的默认值,缺省参数
        required - 可选参数是否可以省略 (仅针对可选参数)    
步骤
    1.首先导入该模块;
        import argparse
    2.然后创建一个解析对象-并进行简单的描述;
        parser = argparse.ArgumentParser()
    3.然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项;
        parser.add_argument()
            type:参数的类型,默认是字符串string类型,还有floatint等类型
            action - 命令行遇到参数时的动作,默认值是 store
        参数组
        group = parse.add_mutually_exclusive_group(required=True)
    4.最后调用parse_args()方法进行解析;
        parser.parse_args()

R语言

01.批量运行脚本
命令行
    R CMD BATCH  脚本文件名      输出文件名
    Rscript         脚本文件名   参数
R界面
    source

02.获得参数使用的函数 commandArgs(TRUE)
    argv <-     commandArgs(TRUE)
    x <- as.numberic(argv[1])
    y <- as.character(argv[2])

03.
    文件是否存在以及是否有权限
    执行权限
    是否 #/usr/bin/Rscript  可以直接执行
04.赋予权限
    Linux 下 chmod

其余语言

处理命令行参数是一个相似而又复杂的事情,为此,
    C提供了getopt/getopt_long等函数
    C++的boost提供了Options库
    Java:程序开始于对函数main()的调用。
        01.在这样做的时候,有两个参数被送给main(),
            其中的一个描述了命令行参数的个数,通常称为argc;
                            另一个是命令行参数的数组,通常称为argv。
        02.命令行的参数以空格隔开。
            但是,若命令行的参数本身包含空格时,则该参数必须用一对双引号括起来

blogroll

social