-1

Скрипт предназначен для добавления торрент-файлов в папку и их добавления в передачу. Вот сценарий:

#!/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 ответ1

0

Есть несколько вопросов из того, что я вижу в вашем сценарии.

Попробуйте следующее. замещать

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"

Это предотвратит глобализацию и разбиение слов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .