setwd()导致终端语法错误

时间:2017-12-03 07:46:04

标签: r terminal cron syntax-error

为什么RScript在RStudio上运行正常但在终端上运行crontab作业时会出错?

我试图在RScript上运行crontab作业以每分钟收集数据(* * * * *)。在RStudio上运行时,RScript工作正常但是在运行crontab时,我收到以下错误:

/Users/xx/Capstone_2/Get_Data.R: line 3: syntax error near unexpected token `'/Users/xx/Capstone_2/Data''
/Users/xx/Capstone_2/Get_Data.R: line 3: `setwd('/Users/xx/Capstone_2/Data')'

以下是我在crontab -e上运行的内容:

* * * * * /Users/xx/Capstone_2/Get_Data.R

这是RScript:

setwd('/Users/xx/Capstone_2/Data')
library(twitteR)

setup_twitter_oauth('consumer-key', 'consumer-secret', 
'access-token','access-secret')

iphonex <- searchTwitter("iphonex", n=1000)
iphonex <- twListToDF(iphonex)

write.csv(iphonex, '/Users/xx/Capstone_2/Data/iphonex.csv')

2 个答案:

答案 0 :(得分:0)

如果您向我们展示了所有/Users/xx/Capstone_2/Get_Data_Test.R文件,那么问题是shell不知道您要通过R运行它。您需要添加

#!/usr/bin/Rscript

作为第一行。

答案 1 :(得分:0)

步骤1:

使用以下命令检查(在终端中)Rscript的安装位置:

which Rscript

第2步:

根据第1步的路径(例如),在R脚本中调整shebang行:

#!/usr/bin/Rscript

第3步:

让crontab处理对具有R脚本的目录的更改。

* * * * * cd /Users/xx/Capstone_2/ && /usr/bin/Rscript Get_Data.R