由于在分析過程中箩言,有很多時候會進行批量操作或者重復操作從而反復使用同一個腳本硬贯,程序應避免把路徑寫死以免造成反復修改,于是我把python陨收,r和bash的傳參方式整理了一下饭豹,以便日后寫程序使用的方便。
1务漩、python給程序傳參
代碼如下
#!/usr/bin/python
import os ## 經常用于文件系統(tǒng)路徑
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默認參數(shù)argv[0]為腳本名拄衰,所以參數(shù)從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解釋器發(fā)生變更很可能造成程序報錯源葫,其實是很坑的。
如文件為test.sh,需要chmod 755 test.sh
增加可執(zhí)行權限
給Bash傳參的代碼如下:
#!/bin/bash
echo "Shell 傳遞參數(shù)";
args1=$1;
args2=$2;
args3=$3;
echo -e $args1,$args2,$args3"\n";
Shell參數(shù)的傳遞相當簡單砖瞧,代碼中需要注意的是如果打印換行符需要加-e
以上格式是便于日后腳本處理的方便息堂,批處理或者重復使用。