2014-04-04 7 views
0

Привет Я новичок в написании сценариев, и я имею в виду полное noobie. Я работаю над скриптом, чтобы автоматически создавать торрент с помощью nemo-скриптов.nemo script для торрентов

#!/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" 

, чем он работает как шарм. Он создает его на рабочем столе с трекером, который я хочу. Я думаю, что это пригодится многим людям. Я действительно не знаю, что положить. У вас возникли вопросы. Снова полный noobie.

+1

где находится переменная '$ NEMO ....'? Как написано выше, он полностью не определен, что делает '$ DIR' пустым значением. Если это происходит из оболочки nautilus, вы должны отлаживать с помощью и 'env' вызов в этом скрипте, чтобы определить, какие переменные ARE определены. –

+0

Я не уверен, где именно определяется DIR. Я думаю, что это определено в nemo. Он получил это из другого скрипта, который был предварительно установлен в nemo actions. Что вы подразумеваете под «env»? Снова полный noobie. Извините за невежество. – natethegreat141990

+0

изменить первую строку на '#!/Bin/bash -vx'. В этом случае в режиме отладки/трассировки вы увидите каждую строку перед ее исполнением, как код, затем оцениваемую строку, а переменные заменяются значениями. Как говорит @MarcB, вероятно, вы увидите, что в $ DIR нет значения. Затем вам нужно выяснить, почему '$ NEMO_SCRIPT_SELECTED_FILE_PATHS' пуст. Удачи. – shellter

ответ

0

$ NEMO_SCRIPT_SELECTED_FILE_PATHS - это то же, что и $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS. Он заселен nemo/nautilus при запуске скрипта и содержит список выбранных файлов/папок с разделителем строк (я думаю). Предполагая, что вы выбираете только один файл или папку, я действительно не понимаю, почему это не сработает - если только символ новой строки не находится там и не вызывает проблем. Если это так, вы можете удалить его с помощью sed. Не работает nemo или nautilus, поэтому я не могу его протестировать.

0

я наконец нашел решение твоего и мою проблему [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 список путей/имен файлов, разделенных на Newline. Это испортит все, что предполагает только одно имя файла, даже если оно есть.

#!/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 

Обратите внимание, что это делает дополнительный пропуск для новой строки. Вам нужно либо отфильтровать это, либо поставить файл if, если существует файл/папка

 Смежные вопросы

  • Нет связанных вопросов^_^