2017-12-03 580 views
1

为什么RScript在RStudio上正常工作,但在终端上运行crontab作业时会导致错误?setwd()导致终端中出现语法错误

我试图在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') 
+0

当通过crontab执行此代码时会发生什么错误消息?是否可能执行cron作业的用户名不具有对'write.csv()'中列出的子目录的写入权限? –

+0

疯狂猜测:尝试在脚本中使用双引号而不是单引号。 – Roland

回答

0

如果你已经给我们展示了所有的/Users/xx/Capstone_2/Get_Data_Test.R文件,那么问题在于shell不知道你想运行它通过R.您需要添加

#!/usr/bin/Rscript 

作为第一行。

+0

我添加了这一行,但是我得到了一个不同的错误:'/ bin/sh:/Users/xx/Capstone_2/Get_Data_Test.R:/ usr/bin/Rscript:错误的解释器:没有这样的文件或目录' – mch103

+0

R安装在哪里?你可以使用console命令'which Rscript'来找到它。在第一行中使用Rscript的路径。 – user2554330