Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 8004 В разделах:
Programming
Sysadmin
от January 18th, 2016,
В подшивках: Linux
Надоело мне файлы руками заливать на всякие обменники когда можно написать простейший bash скрипт и больше не иметь мозг с этой проблемой.
Сегодня нам понадобится:
Пакет zenity обычно уже предустановлен и предназначен для создания диалоговых окон из консольных скриптов. Идеально для моей нужды. Пакеты с curl и xsel придется доустановить sudo apt-get install curl xsel.
Я написал коммент к каждой строке чтобы было понятно даже непонятливым. Скрипт ложится в директорию ~/.config/caja/scripts/
#!/bin/bash
#установим разделитель "перенос строки" для CAJA_SCRIPT_SELECTED_FILE_PATHS
IFS="
"
#для удобства положил в переменную с более коротким именем
files="$CAJA_SCRIPT_SELECTED_FILE_PATHS"
#урл хранилища файлов. в конец будут добавляться имена закачаных файлов
url="http://4334.selcdn.ru/sharedfiles/"
#проверим а не пустая ли переменная нам упала
[ "$files" == "" ] && exit 1;
#в answer упадет 1 (отмена) или 0 (продолжить).
answer=$(zenity --question --text "Файл станет доступен всем. Заливаем?" --default-cancel)
#проверим что ответил юзер.
#использую #? чтобы узнать ответ от последней запущеной программы
[ $? -ne 0 ] && exit 1
#ну а тут простой перебор файлов
for filename in $files
do
#закачиваем курлом на фтп
curl ftp://ftp.selcdn.ru/sharedfiles/ --user vlad:MySUPAPasswD -T $filename
#тут определяем имя файла
basefilename=$(basename $filename)
#ложим результат в переменную. если несколько файлов, то учтутся и уже залитые файлы
resultText="$resultText $url$basefilename"
done
#а теперь нежно ложим результат в буфер обмена
echo $resultText |xsel --clipboard --input
Fortune cookie: Public prayer...Don't Stand for it!
Leave a Reply