有没有办法在调用命令时检索新添加的 torrent 传输生成的 ID:
$> transmission-remote -a file.torrent
该命令的返回值$?
返回 0 或 1,具体取决于 torrent 是否是有效文件,但我想找到一种方法来获取唯一标识符,以便稍后对 torrent 执行操作(停止、启动、删除等)。
答案1
我认为只有两种方法可以做到:
使用
--list
之前和之后,看看有什么新变化。在脚本中可行,但听起来很痛苦。当然也容易参加比赛。使用
-t TORRENT -i
并观察Id:
现场。乍一看这看起来是循环的,但事实证明 TORRENT 不一定是 Id。它可以是一个哈希值。
因此,采用方法2:
hash="$( transmission-show FILE.TORRENT | perl -n -E 'say $1 if /^\s*Hash: (.+)$/' )"
id="$(transmission-remote -t "$hash" -i | perl -n -E 'say $1 if /^\s*Id: ([0-9]+)$/' )"
当然,您可以将所有这些组合在一行中。您必须将服务器/身份验证选项添加到该tramission-remote
行。 (就我个人而言,我有一个t-r
脚本可以做到这一点,并在-l
输出中添加偶数-奇数行突出显示)。它看起来像这样:
#!/bin/bash
if ! [ -r ~/.transmission-netrc ]; then
echo Expected to find a ~/.transmission-netrc file with the username
echo and password.
exit 1
fi
if [ "xterm" == "$TERM" ]; then
export TERM=xterm-256color
fi
transmission-remote «HOSTNAME» -N ~/.transmission-netrc "$@" | (
if [ "-l" == "$1" ]; then
sed -e "1~2 s|^|`tput setab 149``tput el`|" -e "2~2 s|^|`tput setab 221``tput el`|"
tput setab 7
tput el
else
cat
fi
)
记下您需要填写的“HOSTNAME”。