Python,R和Bash的命令行傳參

由于在分析過程中,有很多時(shí)候會(huì)進(jìn)行批量操作或者重復(fù)操作從而反復(fù)使用同一個(gè)腳本,程序應(yīng)避免把路徑寫死以免造成反復(fù)修改,于是我把python,r和bash的傳參方式整理了一下,以便日后寫程序使用的方便。
1、python給程序傳參
代碼如下

#!/usr/bin/python   
import os   ## 經(jīng)常用于文件系統(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)

調(diào)用方式如下:
python args.py x y z
輸出為:('x', 'y', 'z')
python默認(rèn)參數(shù)argv[0]為腳本名,所以參數(shù)從1開始

2、R給程序傳參
代碼如下

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

調(diào)用方式如下
Rscript args.R 1 2 3
輸出為:
[1] "1"
[1] "2"
[1] "3"
這里需要注意的是我們調(diào)用R腳本的時(shí)候需要使用的Rscript而不能用R,R默認(rèn)打開交互式界面而不正常運(yùn)行腳本!

3、Bash給程序傳參
Bash是Shell下的一種,個(gè)人電腦中的bash路徑為/bin/bash,而大家習(xí)慣修改為zsh,這里需要注意,如果shell解釋器發(fā)生變更很可能造成程序報(bào)錯(cuò),其實(shí)是很坑的。
如文件為test.sh,需要chmod 755 test.sh增加可執(zhí)行權(quán)限
給Bash傳參的代碼如下:

#!/bin/bash
echo "Shell 傳遞參數(shù)";
args1=$1;
args2=$2;
args3=$3;
echo -e $args1,$args2,$args3"\n";

Shell參數(shù)的傳遞相當(dāng)簡單,代碼中需要注意的是如果打印換行符需要加-e

以上格式是便于日后腳本處理的方便,批處理或者重復(fù)使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,695評(píng)論 0 5
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡介】: Python 是一個(gè)...
    _小老虎_閱讀 6,311評(píng)論 0 10
  • 第 2 章 SHELL 基礎(chǔ)知識(shí)2.1 shell腳本我們在上面簡單介紹了一下什么是shell腳本,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,641評(píng)論 0 0
  • 什么是運(yùn)維 術(shù)語名詞 IDC--(Internet Data Center)互聯(lián)網(wǎng)數(shù)據(jù)中心,主要服務(wù)包括整機(jī)租用、...
    lyh165閱讀 2,875評(píng)論 0 19
  • 職場中,除了公司提供的平臺(tái),同事也是我們每個(gè)人的重要資源。個(gè)人能力再強(qiáng),也會(huì)受個(gè)人能力所限,不能撐起整個(gè)團(tuán)隊(duì)的業(yè)績...
    哈默老師閱讀 776評(píng)論 0 2

友情鏈接更多精彩內(nèi)容