我必须从 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")'
做对了。
我错过了什么?