该脚本用于将 torrent 文件添加到文件夹并将其添加到传输中。以下是脚本:
#!/bin/bash
for file in /home/me/box/*/*
do
dir=$(basename $(dirname "$file"));
sudo chmod 0777 /var/log/torrentwatch.log
sudo chmod -R 0777 /home/me/box/*/*
if "$file" = "/home/me/box/*/*.torrent"; then
echo [`date`] "$file" added to queue. >> /var/log/torrentwatch.log
/usr/bin/transmission-remote localhost:9091 --auth=transmission:transmission -l -w /media/Media/Torrents/$dir -a "$file"
sleep 40 && rm "$file"
sleep 3 && sudo chmod -R 777 /media/Media && sudo chown -R debian-transmission:debian-transmission /media/Media/info
fi
done
问题是当我运行脚本时
/home/me/box/TV/Name.of.file.torrent: Syntax error: "(" unexpected
我尝试使用 bash、sh 和 zsh 运行该脚本,但似乎都不起作用。我不知道问题出在哪里。
答案1
从我所看到的您的脚本来看,存在几个问题。
尝试以下操作。替换
dir=$(basename $(dirname "$file"));
和
dir=$(basename "$(dirname "$file")");
这应该可以解决您的错误,但是我还建议您做其他几件事:
echo [`date`] "$file" added to queue. >> /var/log/torrentwatch.log
我会把它改成
echo "[$(date)]" "$file" added to queue. >> /var/log/torrentwatch.log
这可以避免一些问题,其中包括单词分割,以及有点危险且不可移植的“。”的使用。
/usr/bin/transmission-remote localhost:9091 --auth=transmission:transmission -l -w /media/Media/Torrents/$dir -a "$file"
我会将其改为:
/usr/bin/transmission-remote localhost:9091 --auth=transmission:transmission -l -w /media/Media/Torrents/"$dir" -a "$file"
这将防止通配符和单词分割。