Немо скрипт для торрентов
Привет, я новичок в написании сценариев, и я имею в виду полный нуби. Я работаю над сценарием для автоматического создания торрента с помощью nemo-скриптов.
#!/bin/bash
DIR="$NEMO_SCRIPT_SELECTED_FILE_PATHS"
BNAME=$(basename "$DIR")
TFILE="$BNAME.torrent"
TTRACKER="http://tracker.com/announce.php"
USER="USERNAME"
transmission-create -o "/home/$USER/Desktop/$TFILE" -t $TTRACKER "$DIR"
Это не работает.
Однако, если я заменю
DIR="$NEMO_SCRIPT_SELECTED_FILE_PATHS"
с
DIR="absolutepath"
чем это работает как шарм. Он создает его на рабочем столе с трекером, который я хочу. Я думаю, что это пригодится многим людям. Я действительно не знаю, что поставить. Есть вопросы, пожалуйста, задавайте. Опять полный нуби.
2 ответа
Я наконец нашел решение вашей и моей проблемы [ https://askubuntu.com/questions/243105/nautilus-scripts-nautilus-script-selected-file-paths-have-problems-with-spac][1]
Переменная $NEMO_SCRIPT_SELECTED_FILE_PATH/$NAUTILUS_SCRIPT_SELECTED_FILE_PATH представляет собой список путей / имен файлов, разделенных символом новой строки. Это портит все, что предполагает только одно имя файла, даже если это так.
#!/bin/bash
echo "$NEMO_SCRIPT_SELECTED_FILE_PATHS" | while read DIR; do
BNAME=$(basename "$DIR")
TFILE="$BNAME.torrent"
TTRACKER="http://tracker.com/announce.php"
USER="USERNAME"
transmission-create -o "/home/$USER/Desktop/$TFILE" -t $TTRACKER "$DIR"
done
Заметьте, что это похоже на дополнительный проход для новой строки. Вы должны либо отфильтровать это, либо поставить, если файл / папка существует
$NEMO_SCRIPT_SELECTED_FILE_PATHS совпадает с $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS. Он заполняется с помощью nemo/nautilus, когда вы запускаете скрипт, и содержит список выбранных файлов / папок, разделенных новой строкой (я думаю). Предполагая, что вы выбираете только один файл или папку, я действительно не понимаю, почему это не сработает - если только символ перевода строки там и не вызывает проблем. Если это так, вы можете удалить его с помощью sed. Не работает Nemo или Nautilus, поэтому я не могу проверить это.