OS X Shell - скрипт «Clickable» для стирания файлов?

Я использую Latex для написания своих документов. 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 какое-либо преимущество перед сценарием оболочки?   -  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

См. этот ответ для сделать сценарий оболочки двойным щелчком, но обратите внимание, что при запуске сценария из Finder не существует понятия «текущий каталог».

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