OS X Shell - скрипт с възможност за кликване за изтриване на файлове?

Използвам латекс за писане на документите си. Latex създава МНОГО спомагателни файлове за компилиране на документ. Често искам да изчистя работната си директория.

Докато работех в Windows, съхранявах .bat файл в работната директория, който изглеждаше така:

del *.aux
del *.pdf
del *.log
del *.bak
del *.gz
del *.bbl
del *.blg

върху който мога просто да щракна, за да се отърва от всички спомагателни файлове в текущата директория.

Сега искам да направя същото на моя Mac. Създадох .sh файл като този:

#!/bin/bash

echo "Cleaning files..."

rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

който знам, че мога да стартирам (т.е. да извикам от командния ред), но не мога да щракна - което е по-удобно, защото не винаги ще използвам терминал.

Трябва да подчертая факта, че скриптът трябва да изтрие файловете в директорията, от която е щракнато!

Как мога да конвертирам този скрипт в "с възможност за щракване"?

Оценявам всеки принос!


person thiagoveloso    schedule 06.07.2015    source източник
comment
Ще трябва да намерите динамично пътя до файла със скрипта: stackoverflow.com/questions/59895/   -  person Alexander O'Mara    schedule 06.07.2015
comment
Щракването не принадлежи към никоя директория. Искате да кажете, че трябва да премахне някои файлове в директорията, в която е вашият терминал?   -  person Mark Setchell    schedule 06.07.2015
comment
@MarkSetchell Мога да щракна с десния бутон върху него и да го свържа с Terminal.app, което всъщност отваря терминал с извикването: /path_of_script.sh; exit;   -  person thiagoveloso    schedule 06.07.2015
comment
AppleScript, добавен към лентата с инструменти, който получава текущата папка и изпълнява скрипта, ще работи.   -  person empedocle    schedule 06.07.2015
comment
@AlexanderO'Mara вашата връзка е наистина полезна, много я оценявам.   -  person thiagoveloso    schedule 06.07.2015
comment
@empedocle ще има ли AppleScript някакво предимство пред shell скрипт?   -  person thiagoveloso    schedule 06.07.2015
comment
@thiagoveloso Ако искате да го стартирате от лентата с инструменти на Finder, AppleScript може да получи текущата папка на този прозорец на Finder. От това можете или да изтриете чрез AppleScript, или да прехвърлите папката към скрипта на обвивката.   -  person empedocle    schedule 06.07.2015


Отговори (2)


Въз основа на тази справка (Получаване на изходната директория на Bash скрипт отвътре), в крайна сметка реших проблема си със следния код:

#!/bin/bash

DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )

echo "Cleaning files..."

cd $DIR
rm *.aux
rm *.bak
rm *.bbl
rm *.blg
rm *.gz
rm *.log
rm *.pdf

echo "Done!"

#read -p "Press [Enter] to continue..."

Работи много добре за почистване на всички неприятни файлове, оставени от Texmaker!

person thiagoveloso    schedule 06.07.2015

Вижте този отговор за правене на shell скрипт с възможност за двойно щракване, но имайте предвид, че няма концепция за "текуща директория", когато стартирате скрипт от Finder.

person Paul R    schedule 06.07.2015
comment
Файлът command по природа е насочен към началната директория и следователно не работи за мен. - person thiagoveloso; 06.07.2015
comment
Да, затова казах, че няма текуща директория при стартиране от Finder - ще трябва да посочите директория по някакъв начин. - person Paul R; 06.07.2015