美文网首页Shell和命令R语言
Python,R和Bash的命令行传参

Python,R和Bash的命令行传参

作者: 抠脚_b41d | 来源:发表于2019-01-19 11:17 被阅读117次

    由于在分析过程中,有很多时候会进行批量操作或者重复操作从而反复使用同一个脚本,程序应避免把路径写死以免造成反复修改,于是我把python,r和bash的传参方式整理了一下,以便日后写程序使用的方便。
    1、python给程序传参
    代码如下

    #!/usr/bin/python   
    import os   ## 经常用于文件系统路径
    from sys import argv   
    out_1, out_2, out_3 = argv[1],argv[2],argv[3]  
    print(out_1,out_2,out_3)
    

    调用方式如下:
    python args.py x y z
    输出为:('x', 'y', 'z')
    python默认参数argv[0]为脚本名,所以参数从1开始

    2、R给程序传参
    代码如下

    #!/usr/bin/Rscript
    args=commandArgs(T)
    print(args[1])
    print(args[2])
    print(args[3])
    

    调用方式如下
    Rscript args.R 1 2 3
    输出为:
    [1] "1"
    [1] "2"
    [1] "3"
    这里需要注意的是我们调用R脚本的时候需要使用的Rscript而不能用R,R默认打开交互式界面而不正常运行脚本!

    3、Bash给程序传参
    Bash是Shell下的一种,个人电脑中的bash路径为/bin/bash,而大家习惯修改为zsh,这里需要注意,如果shell解释器发生变更很可能造成程序报错,其实是很坑的。
    如文件为test.sh,需要chmod 755 test.sh增加可执行权限
    给Bash传参的代码如下:

    #!/bin/bash
    echo "Shell 传递参数";
    args1=$1;
    args2=$2;
    args3=$3;
    echo -e $args1,$args2,$args3"\n";
    

    Shell参数的传递相当简单,代码中需要注意的是如果打印换行符需要加-e

    以上格式是便于日后脚本处理的方便,批处理或者重复使用。

    相关文章

      网友评论

        本文标题:Python,R和Bash的命令行传参

        本文链接:https://www.haomeiwen.com/subject/nyvadqtx.html