rtorrent 执行shell脚本

Posted

技术标签:

【中文标题】rtorrent 执行shell脚本【英文标题】:rtorrent execute shell script 【发布时间】:2013-11-11 19:26:55 【问题描述】:

我不知道如何在命令执行后将 shell 脚本的输出返回到 rtorrent。 是否可以将外部命令的输出返回到 rtorrent 会话? 我使用 rtorrent 脚本接口在 torrent 完成后自动执行 shell 命令 .rtorrent.rc 中的事件行如下所示:

system.method.set_key = event.download.finished,mycustomcommand,"execute=~/myshellscript.sh"

myshellscript.sh 文件如下所示

#!/bin/sh
echo "Torrent finished!"

有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

我不确定您在搜索什么,但我在 rtorrent's wiki site 上找到了这个:

execute_capture_nothrow=command,arg1,arg2,...

这将执行带有参数 arg1,arg2,.... 的外部命令。它将返回 命令的标准输出。

【讨论】:

我以前试过这个,但还是没有运气。 execute_capture_nothrow=command,arg1,arg2,...这将执行带有参数 arg1,arg2,...的外部命令。它将返回命令的标准输出。我什至尝试过这个,但仍然没有运气。也许它与屏幕会话有关。 目标到底是什么?你想做什么? 我想执行shell脚本并将输出(stdout)返回到rtorrent 好的,但是 rtorrent 会如何处理呢? 我通过 rtorrent 脚本接口从 rtorrent 中运行脚本。所以必须说些什么。我开始怀疑是否有可能做到这一点。【参考方案2】:
system.method.set_key = event.download.finished,mycustomcommand,print="$execute_capture=/path/to/script" 

应该有效,至少

print="$execute_capture=/path/to/script"

当您在 rtorrent 中执行此操作时有效。如果要存储输出,则使用 d.custom1.set= 代替打印,如果有帮助的话。

【讨论】:

【参考方案3】:

您忘记向 rtorrent.rc 本身添加参数,而且我认为 bash 脚本不完整。

.rtorrent.rc 行应该有

method.set_key = event.download.finished,whatever,"execute2=/path/myscript.sh,$d.name=,$d.base_path=,$d.hash="

bash 脚本

#!/bin/bash
TORRENT_NAME=1
TORRENT_PATH=2
TORRENT_HASH=3

touch "$1" Finished download!

exit

这将创建触摸文件,告诉您特定文件已完成下载。

【讨论】:

以上是关于rtorrent 执行shell脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本执行source报错

shell脚本获取参数&在线执行shell脚本

多行shell脚本如何执行?

Linux远程执行Shell命令或脚本

Linux下如何执行Shell脚本

shell脚本ansible执行不成功