
コマンドを呼び出すときに新しく追加された急流転送で生成されたIDを取得する方法はありますか?
$> transmission-remote -a file.torrent
このコマンドの戻り値は、急流が$?
有効なファイルであるかどうかに応じて0または1を返しますが、後で急流の操作(停止、開始、削除など)を実行できる一意の識別子を取得する方法を見つけたいと思います。 )。
答え1
私はそれを行う方法が2つしかないと思います。
使用
--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]+)$/' )"
もちろん、これらすべてを1行にまとめることもできます。その行にサーバー/認証オプションを追加する必要があります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」を記録してください。