Strona główna
» MAC OS X
»
Jak uruchamiać polecenia terminala ze skryptu w systemie macOS
Jak uruchamiać polecenia terminala ze skryptu w systemie macOS
Aby uruchomić polecenia terminala ze skryptu w systemie macOS, umieść je w skrypcie powłoki w postaci zwykłego tekstu, nadaj mu atrybut wykonywalności, a następnie uruchom go w Finderze lub Terminalu. Użyj .commandrozszerzenia, aby otworzyć skrypt, klikając go dwukrotnie. Skrypt nie omija kontroli prywatności w systemie macOS ani nie przyznaje uprawnień administratora.
Krótki skrypt powłoki zaczyna się od polecenia shebang, które wybiera zsh.
1. Zapisz polecenia w pliku tekstowym
Skrypt powłoki to plik tekstowy zawierający polecenia. Uruchom go za pomocą shebanga , pierwszego wiersza, który wskazuje systemowi macOS, która powłoka powinna interpretować plik. Obecnie domyślną powłoką dla nowych okien Terminala jest zsh, chociaż administrator może ustawić inną domyślną powłokę, jak wyjaśnia Apple w swoim przewodniku po Terminalu . W tym przykładzie jawnie użyto zsh:
#!/bin/zsh
# Print a message when the script runs
echo "Script is running"
Umieść polecenia w osobnych wierszach pod shebangiem. Shebang wybiera interpreter, więc użyj obsługiwanej przez niego składni; na przykład skrypt powłoki Bash może zaczynać się od . Podręcznik skryptów powłoki#!/bin/bash Apple'a wyjaśnia podstawy.
Możesz użyć programu TextEdit, ale upewnij się, że plik jest zwykłym tekstem: nowe dokumenty programu TextEdit mogą zawierać tekst sformatowany. Wybierz Format > Zamień na zwykły tekst lub ustaw format nowego dokumentu programu TextEdit na Zwykły tekst w jego ustawieniach. Formatowanie tekstu sformatowanego nie jest kodem powłoki. Apple dokumentuje te opcje w swoim podręczniku do programu TextEdit . Edytor kodu lub edytor wiersza poleceń, taki jak nano.
Zapisz skrypt z rozszerzeniem .command w miejscu, które możesz znaleźć.
2. Zapisz z .commandrozszerzeniem
Zapisz plik tekstowy z opisową nazwą, taką jak MyScript.command. Rozszerzenie ułatwia Finderowi otwieranie skryptu w Terminalu po dwukrotnym kliknięciu. Archiwalna dokumentacja dla programistów Apple opisuje ten proces dwukrotnego kliknięcia dla skryptów powłoki. Sprawdź ostateczną nazwę w Finderze: jeśli kończy się na .command.txt, zmień ją tak, aby ostateczne rozszerzenie to tylko .command. Zachowaj przykład w miejscu takim jak Pulpit podczas konfiguracji.
Jeśli system macOS zapyta, jakiego rozszerzenia użyć, zachowaj je .commandi sprawdź, czy Finder nie dodał go .txt.
3. Uczyń skrypt wykonywalnym
Otwórz terminal i udziel swojemu kontu uprawnień do uruchomienia pliku. W przykładzie zapisanym na pulpicie wpisz:
chmod u+x "$HOME/Desktop/MyScript.command"
Naciśnij Return. u+xDodaje uprawnienia do wykonywania dla właściciela; cudzysłowy chronią ścieżki spacjami. W razie potrzeby zastąp przykładową ścieżkę. Przeciągnij plik do Terminala lub użyj menu Option-click w Finderze, aby skopiować jego ścieżkę. Apple pokazuje tę samą metodę w instrukcjach dotyczących plików wykonywalnych .
Polecenie chmod dodaje właścicielowi pliku uprawnienia do wykonywania.
4. Uruchom skrypt
Kliknij dwukrotnie MyScript.commandw Finderze, aby uruchomić go w terminalu. Wyświetlą się tam dane wyjściowe i błędy. Możesz też wpisać pełną ścieżkę:
"$HOME/Desktop/MyScript.command"
Albo najpierw zmień folder, a następnie dodaj prefiks do nazwy pliku ./:
cd "$HOME/Desktop"
./MyScript.command
Polecenie ./to informuje powłokę o uruchomieniu pliku w bieżącym folderze. W podręczniku poleceń terminala firmy Apple wyjaśniono, jak uruchomić plik wykonywalny według ścieżki dostępu.
Uruchom plik według jego ścieżki i sprawdź dane wyjściowe w terminalu.
Rozwiązywanie typowych błędów
„Odmowa dostępu”: Sprawdź, czy uruchomiłeś chmod u+xwłaściwy plik. W razie potrzeby powtórz polecenie, używając dokładnej ścieżki dostępu do pliku. Nadanie plikowi atrybutu wykonywalnego nie autoryzuje wszystkich poleceń w nim zawartych.
„Brak takiego pliku lub katalogu”: Sprawdź lokalizację i pisownię, w tym rozszerzenie. Plik przypadkowo zapisany jako MyScript.command.txtnie będzie pasował do powyższego polecenia. Przeciągnięcie pliku do Terminala może pomóc w wpisaniu jego ścieżki.
Polecenie działa po wpisaniu, ale nie w skrypcie: Skrypt może używać innej powłoki lub opierać się na aliasach, zmiennych środowiskowych lub katalogu roboczym z sesji interaktywnego terminala. Używaj odpowiedniego shebanga, unikaj aliasów i jawnie określaj ścieżki do plików. Jeśli polecenia wymagają konkretnego folderu, dodaj odpowiedni cdwiersz na początku skryptu.
Przed udostępnieniem zapoznaj się z uprawnieniami
Bit wykonania jest niezależny od uprawnień prywatności. Skrypt zazwyczaj działa z Twojego konta; używaj go sudotylko w przypadku poleceń wymagających uprawnień administratora.
System macOS może prosić o dostęp do chronionych folderów lub innych aplikacji. Przejrzyj każde żądanie i zezwól tylko na niezbędny dostęp. Sprawdź menu Apple > Ustawienia systemowe > Prywatność i bezpieczeństwo dla Plików i folderów oraz powiązanych ustawień prywatności . Zezwolenia zależą od żądanego dostępu i aplikacji, która go zażądała; nie są to ogólne uprawnienia przypisane do konkretnego polecenia i nie są przesyłane wraz ze skryptem współdzielonym.
Przed uruchomieniem lub udostępnieniem skryptu przeczytaj każdy wiersz i upewnij się, że rozumiesz, co zmienia. .commandPlik jest wygodny, ponieważ można go uruchomić po otwarciu, dlatego korzystaj tylko z plików pochodzących z zaufanych źródeł.