2014-10-01 75 views
3

我目前正在嘗試將R文件作爲Rscript文件運行。我有一個script.sh文件中下面的代碼:在一個shell腳本中,你如何結合`Rscript`和`Unix`命令?

#!/bin/bash 
cd documents 
module load r 

#!/usr/bin/env Rscript 
mem2 <- 4+5 
packageVersion("data.table") 
save.image("OUT.RData") 

然而,似乎在運行此使用qsub script.sh後,它有錯誤的話幾個命令是如何不承認回來。我做錯了嗎?謝謝!

+1

這些都在同一個文件中? – 2014-10-01 03:34:30

回答

7

我想你正在尋找一個「在這裏文件」在殼。這允許文本傳遞給另一個解釋器。例如:

#!/bin/bash 
cd documents 
module load r 

/usr/bin/env Rscript -<<EOF 
mem2 <- 4+5 
packageVersion("data.table") 
save.image("OUT.RData") 
EOF 

這裏,Rscript被(從/usr/bin/env)和在標準輸入的被叫,所有的後續行的傳遞,直到標記(這裏,EOF)被看見。

+0

謝謝你,你是一個救生員! – user1398057 2014-10-01 21:45:45