Jak uruchomić skrypt powłoki (.sh) w systemie macOS
Aby uruchomić skrypt powłoki w systemie macOS , otwórz terminal, przejdź do folderu zawierającego .shplik i uruchom go za pomocą interpretera. Na przykład, bash hello.shuruchamia skrypt powłoki Bash bez zmiany jego uprawnień. Jeśli chcesz uruchomić go jako polecenie, nadaj mu uprawnienia wykonywalne za pomocą chmod +x hello.sh, a następnie uruchom ./hello.sh. Te metody działają w obecnych wersjach systemu macOS.
Sprawdź skrypt przed jego uruchomieniem
Skrypt powłoki to plik tekstowy zawierający polecenia. Polecenia te działają z uprawnieniami konta użytkownika, dzięki czemu skrypt może edytować lub usuwać pliki, instalować oprogramowanie lub przesyłać dane przez sieć. Przeczytaj otrzymany skrypt przed jego uruchomieniem, zwłaszcza jeśli prosi o hasło administratora lub używa sudo. Uruchamiaj skrypty tylko z zaufanych źródeł; zmiana uprawnień pliku nie sprawi, że jego zawartość będzie bezpieczna.
To najprostszy sposób uruchomienia skryptu Bash. Nie musisz najpierw dodawać uprawnień do wykonywania.
Utwórz lub znajdź skrypt. Skrypt powłoki można napisać w dowolnym edytorze zwykłego tekstu. Aby szybko przetestować, otwórz TextEdit, wybierz Format > Utwórz zwykły tekst i wpisz te dwa wiersze:
#!/bin/bash
echo "Hello from macOS"
Zapisz plik jako hello.sh. W oknie dialogowym zapisu sprawdź, czy nazwa kończy się na . .shi czy TextEdit nie dodał .txt. Pierwszy wiersz to shebang: identyfikuje on Basha jako interpreter po bezpośrednim uruchomieniu skryptu. Drugi wiersz wyświetla krótki komunikat.
Przykładowy plik hello.sh zawiera polecenie shebang, po którym następuje polecenie drukujące tekst.
Otwórz Terminal i przejdź do folderu pliku. Naciśnij Command-Spacja, wpisz Terminal i naciśnij Return. Jeśli zapisałeś plik w Pobranych, wpisz:
cd ~/Downloads
Naciśnij Enter po każdym poleceniu. Możesz wpisać ls, aby wyświetlić listę plików i potwierdzić ich hello.shobecność. Przejdź Downloadsdo folderu, którego faktycznie użyłeś. Jeśli nazwa folderu lub pliku zawiera spacje, umieść ścieżkę w cudzysłowie, np cd "$HOME/My Scripts". .
Użyj polecenia cd, aby otworzyć folder zawierający skrypt, a następnie sprawdź jego nazwę poleceniem ls.
Uruchom skrypt za pomocą powłoki Bash. Wpisz nazwę skryptu po bash:
bash hello.sh
Terminal powinien wyświetlić Hello from macOS. Jeśli skrypt używa składni Zsh zamiast Bash, uruchom zsh hello.sh. Powłoka otwierana interaktywnie w terminalu to zazwyczaj Zsh, ale to nie oznacza, że każdy skrypt powinien być uruchamiany w Zsh; użyj interpretera, dla którego skrypt został napisany. Shebang skryptu często wskazuje na ten interpreter.
Udziel uprawnienia do wykonywania. W tym samym oknie terminala i folderze uruchom:
chmod +x hello.sh
Dodaje to uprawnienie do wykonywania tego pliku. Jest to jednorazowa zmiana, chyba że uprawnienia zostaną później zresetowane. Unikaj stosowania szerszych ustawień uprawnień niż to konieczne; chmod +xjest to wystarczające w przypadku posiadanego przez Ciebie skryptu.
Polecenie chmod +x oznacza hello.sh jako plik wykonywalny.
Uruchom z bieżącego folderu. Wpisz:
./hello.sh
Polecenie ./to informuje powłokę o uruchomieniu pliku w bieżącym katalogu. Bez niego powłoka zazwyczaj przeszukuje foldery wymienione w PATHkatalogu, a nie bieżący. Jeśli znajdujesz się w innym miejscu, użyj , cdaby powrócić do folderu skryptu lub wprowadź pełną ścieżkę, na przykład ~/Downloads/hello.sh.
Uruchomienie ./hello.sh uruchamia skrypt wykonywalny i wyświetla jego dane wyjściowe.
Typowe błędy i ich rozwiązania
„Odmowa dostępu” po użyciu ./hello.sh: potwierdź nazwę pliku, a następnie uruchom chmod +x hello.sh. Możesz też użyć tego polecenia bash hello.sh, jeśli jest to skrypt powłoki Bash i nie potrzebujesz bezpośredniego wykonania.
„Brak takiego pliku lub katalogu”: potwierdź folder za pomocą pwd, wyświetl jego zawartość za pomocą lsi sprawdź pisownię oraz wielkość liter. Upewnij się, że plik nie nazywa się w rzeczywistości hello.sh.txt.
„Polecenie nie zostało znalezione” w skrypcie: skrypt może korzystać z narzędzia, którego brakuje lub nie ma w systemie PATH. Przed zainstalowaniem czegokolwiek zapoznaj się z dokumentacją skryptu.
„Nieprawidłowy interpreter” lub błąd informujący ^M, że pierwszy wiersz może wskazywać na niedostępny interpreter lub plik może używać zakończeń wierszy w stylu systemu Windows. Sprawdź shebang i zapisz plik z zakończeniami wierszy w systemie Unix (LF).
Którą metodę powinieneś zastosować?
Użyj tej opcji bash hello.shdo szybkiego uruchomienia, gdy wiesz, że to skrypt Bash. Użyj chmod +x hello.shjej, a następnie , ./hello.shgdy chcesz uruchomić go bezpośrednio i pozwolić jego skryptowi wybrać interpreter. Żadna z tych metod nie instaluje brakujących zależności, nie naprawia niezgodnych poleceń ani nie weryfikuje, czy skrypt jest godny zaufania.