将R脚本的输出传递给bash脚本

时间:2019-12-20 10:58:43

标签: r bash

我想将我的R文件的输出传递给bash脚本。 R脚本的输出是视频的标题:“视频标题”

我的bash脚本很简单:

youtube-dl title_of_video.avi  https://www.youtube.com/watch?v=w82a1FTere5o88

理想情况下,我希望视频的输出为“视频标题”。avi

我知道我可以使用bscript命令使用Rscript来启动R脚本,但我认为Rscript不能在这里帮助我。

2 个答案:

答案 0 :(得分:3)

在bash中,您可以调用命令并通过$(my_command)语法进一步使用命令的输出。

确保您的脚本仅输出标题。

例如

# in getTitle.R
cat('This is my title')   # note, print would have resulted in an extra "[1]"

# in your bash script:
youtube-dl $(Rscript getTitle.R) http://blablabla

如果您也想将参数传递给R脚本,请在$()语法内进行;如果要将这些参数传递给 bash 脚本,并将它们委派给R脚本来处理它们,则可以使用特殊的bash变量$1(表示第一个参数,以此类推) ,或$*表示传递给bash脚本的所有参数,例如

#!/bin/bash
youtube-dl $(Rscript getTitle.R $1) http://blablablabla

(这假设getTitle.R通过commandArgs等在内部对那些参数执行某些操作,以产生所需的标题输出)

答案 1 :(得分:0)

您可以在bash脚本中调用Rscript,并且可以将R脚本的输出分配给bash脚本中的变量。选中此question。之后,您可以执行

youtube-dl $outputFromRScript  https://www.youtube.com/watch?v=w82a1FTere5o88