№ 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: I bet you have fun chasing the soap around the bathtub. -- Princess Diana, to a one-armed war veteran during a visit to a London veterans hospital
Leave a Reply