我想将任意长的字符串传递给Rscript -e
. 但是,似乎有一个长度限制。
考虑模式:
$ Rscript -e 'cat("some string goes here")'
如果字符串的长度为 9993(在我的机器上),则命令失败并无限期挂起。如果它的长度为 9992,它会根据需要输出字符串。(您的数字可能不同;如果您愿意,可以进行二进制搜索来找到它们。)失败看起来像这样:
WARNING: '-e cat("hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihi!hihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihihi
(请注意,字符串在我的控制台中以完全相同的方式被截断:这个输入字符串不是完整的输入字符串。这也意味着我知道有一个WARNING
,但我不知道它在警告我什么!)
绕过这个限制的好方法是什么?我可以将内容粘贴在 下的临时文件中/tmp
,但这让我觉得太乱了。
我真正想做的是使用Rscript
(特别是knitr
)作为文本过滤器:旧字符串进入,新字符串出现。
作为参考,这是我对这个过滤器的第一次迭代。问题是当输入变得太大时,会nanoc
无限期地挂起。(我现在知道这是因为Rscript
挂起;因此,这个问题。)