Python,R和Bash的命令行传参
2019-01-19 本文已影响117人
抠脚_b41d
由于在分析过程中,有很多时候会进行批量操作或者重复操作从而反复使用同一个脚本,程序应避免把路径写死以免造成反复修改,于是我把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
以上格式是便于日后脚本处理的方便,批处理或者重复使用。