我想将 R 文件的输出传递给 bash 脚本。R 脚本的输出是视频的标题:“视频标题”
我的 bash 脚本很简单:
youtube-dl title_of_video.avi https://www.youtube.com/watch?v=w82a1FTere5o88
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望视频的输出为“视频标题”.avi
我知道我可以使用 Rscript 通过 bash 命令启动 R 脚本,但我不认为 Rscript 可以在这里帮助我。
在 bash 中,您可以调用命令并通过$(my_command)语法进一步使用其输出。
确保您的脚本仅输出标题。
例如
# in getTitle.R
cat('This is my title') # note, print would have resulted in an extra "[1]"
Run Code Online (Sandbox Code Playgroud)
# in your bash script:
youtube-dl $(Rscript getTitle.R) http://blablabla
Run Code Online (Sandbox Code Playgroud)
如果您还想将参数传递给 R 脚本,请在 $() 语法中执行此操作;如果您想将这些参数传递给bash脚本,并将它们委托给 R 脚本来处理它们,您可以使用特殊的 bash 变量$1(表示第一个参数等),或$*表示传递给 bash 脚本的所有参数,例如
#!/bin/bash
youtube-dl $(Rscript getTitle.R $1) http://blablablabla
Run Code Online (Sandbox Code Playgroud)
(这假设 getTitle.R 通过commandArgsetc 在内部对这些参数执行某些操作以生成所需的标题输出)