Odpowiedzi:
Najpierw w terminalu włącz skrypt do wykonania, wpisując:
chmod a+x (yourscriptname)
Następnie w Finderze kliknij plik prawym przyciskiem myszy i wybierz „Otwórz za pomocą”, a następnie „Inne ...”.
Tutaj wybierz aplikację, w której chcesz uruchomić plik, w tym przypadku będzie to Terminal. Aby móc wybrać terminal, musisz przełączyć z „Zalecanych aplikacji” na „Wszystkie aplikacje”. (Aplikacja Terminal.app znajduje się w folderze Narzędzia)
UWAGA: chyba że nie chcesz powiązać wszystkich plików z tym rozszerzeniem, które mają być uruchamiane w terminalu, nie powinieneś zaznaczać opcji „Zawsze otwieraj z”.
.command
jest domyślnie wykonywalny z Findera, bez potrzeby instruowania Findera, jak go otworzyć.
.command
rozszerzenie pliku.
Czy próbowałeś użyć .command
rozszerzenia nazwy pliku?
chmod +x
), ale .command
rozszerzenie jest już połączone z terminalem. Świetne rozwiązanie, dziękuję
Począwszy od OSX 10.10 (Yosemite) i od co najmniej OS X 10.8 (Mountain Lion) , zachowanie jest następujące po otwarciu (podwójnym kliknięciem) skryptów wykonywalnych z Findera :
.command
:
Preferences... > Profiles
możesz zdecydować o automatycznym zamknięciu okna po zakończeniu skryptu.cd -- "$(dirname "$BASH_SOURCE")"
zaraz po linii shebangcd -- "$(dirname "$0")"
.chmod +x <script>
w terminalu; w przeciwnym razie zobaczysz następujące objawy:.command
: Finder wyświetla mylący komunikat o błędzie, który sugeruje, że problem można rozwiązać za pomocą File > Get Info
, co nie jest prawdą - użyj chmod +x
metody sugerowanej powyżej.#!/bin/bash
): zachowanie jest tak, jakby to był przyrostek .sh
- patrz poniżej..sh
, zarówno wykonywalne, jak i nie:
TextEdit.app
lub, jeśli są zainstalowane, za pomocą Xcode.app
..scpt
lub .applescript
(nawet jeśli same są oznaczone jako pliki wykonywalne, co zwykle nie ma miejsca):
[Apple]Script Editor
[1] Plik wykonywalny oznacza: skrypt z ustawionymi bitami uprawnień do wykonania i użytkownikiem wywołującym - w stosunku do własności pliku - dlatego potencjalnie może go wykonać.
Jeśli używasz chmod a+x
ustawić wszystkie bity uprawnień (co jest typowe), każdy może ją wywołać (zakładając, że są one również możliwość odczytu pliku na podstawie odczytu bitu zezwolenia (S) i własności danego pliku).
osascript
którą można dołączyć do .command
pliku zamiast ręcznego wprowadzania zmian w profilu.
osascript -e '...'
polecenia na końcu skryptu? Jakie jest konkretne polecenie i czy zapewnia ono zamknięcie prawej karty, nawet jeśli skrypt nie jest uruchomiony na pierwszej karcie?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &
... Może nie działać w każdym scenariuszu, chociaż przekierowanie na koniec jest naprawdę kluczem - w przeciwnym razie osascript można łatwo dostosować (np. okno może wymagać zmiany na tab, jeśli jest to domyślne zachowanie twojego terminala itp.).
.command
uruchomieniu pliku skryptu pomimo ustawienia profilu?
bash
skrypt, dodaj read -p 'Press Return to close this window.'
jako ostatnią instrukcję.
Alternatywnie możesz utworzyć zwykłą aplikację Mac OS X ze skryptu za pomocą Platypus
Prostym sposobem jest zmiana numeru wewnętrznego na .command
lub brak rozszerzenia.
Ale to otworzy Terminal i będziesz musiał go zamknąć. Jeśli nie chcesz widzieć żadnych danych wyjściowych, możesz użyć Automatora, aby utworzyć aplikację Mac, którą możesz kliknąć dwukrotnie, dodać do stacji dokującej itp.
Automator
aplikacjęRun
przycisk w prawym górnym rogu, aby go przetestować.File > Save
stworzyć aplikację.Nie trzeba korzystać z aplikacji innych firm, takich jak Platypus.
Wystarczy utworzyć skrypt Apple za pomocą edytora skryptów i użyć polecenia do shell script "shell commands"
do bezpośrednich wywołań poleceń lub wykonywalnych plików skryptów powłoki, zabezpieczyć gdzieś edytowalny plik skryptu, a następnie wyeksportować go, aby utworzyć skrypt aplikacji. skrypt aplikacji można uruchomić, klikając dwukrotnie lub wybierając w folderze paska.
Możesz również ustawić wartości domyślne według rozszerzenia pliku za pomocą RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
potencjalnie możesz ustawić .sh, aby otwierał się w iTerm / Terminal itp. wymagałoby to uprawnień użytkownika do wykonania, np
chmod u+x filename.sh