3
我必須從shell腳本運行knitr。但是我搞砸了。如何從shell腳本運行knitr
我的shell腳本test.sh是:
#!/bin/bash
input=$1
echo Input $input
# I want to start the following when input is test.Rnw
# /usr/bin/Rscript -e 'library(knitr); knit("test.Rnw")'
cmd_start="'library(knitr);knit(\""
cmd_end="\")'"
echo /usr/bin/Rscript -e $cmd_start$input$cmd_end
/usr/bin/Rscript -e $cmd_start$input$cmd_end
在運行時
./test.sh test.Rnw
輸出
Input test.Rnw
/usr/bin/Rscript -e 'library(knitr);knit("test.Rnw")'
[1] "library(knitr);knit(\"test.Rnw\")"
所以命令似乎沒問題。但R沒有運行knitr。相反,它將輸入作爲變量處理。
運行
/usr/bin/Rscript -e 'library(knitr);knit("test.Rnw")'
不正確的。
我錯過了什麼?
由於周圍我寫的代碼庫(knitr)的作品;在一個臨時文件,運行鍼織( 「test.Rnw」)這通過Rscript tmpfile。但我認爲這有點笨拙。 – JerryWho
出於好奇,爲什麼直接使用'#!/ bin/bash'而不是'#!/ usr/bin/Rscript'?然後,您可以在腳本中使用'commandArgs()'和R語法。 – baptiste
@baptiste:我的例子是一個更大的shell腳本的一部分。所以我不能只使用Rscript。 – JerryWho