Odpowiedzi:
Otwórz Terminal, wpisz sh /path/to/file
i naciśnij enter.
Szybsze jest wpisanie sh
i spacja, a następnie przeciągnięcie pliku do okna i zwolnienie ikony w dowolnym miejscu okna.
shell shell_script
linia shebang jest ignorowana. Powłoka czyta pierwszy wiersz jako komentarz.
sh /path/to/file
różni się semantycznie od alternatywy /path/to/file.sh
?
Możesz też zrobić
cd /directory/with/executable
chmod +x executable # only required if your file is not already executable
./executable
który również uruchomi plik wykonywalny z określoną powłoką (jeśli jest określony w shebang #!/bin/(shell)
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin
edytuj ~/.bash_profile
i dodaj następujący wiersz:
alias myfile=./myfile.sh
wykonaj następujący wiersz polecenia:
source ~/.bash_profile
wtedy będziesz mógł uruchomić swój plik jako program
$ myfile
#~/bin/sh
, podczas gdy w OSX
skrypcie powinien mieć .sh
rozszerzenie i alias
dla każdego z nich. : -O
Wykonaj następujące kroki, aby uruchomić pliki skryptów:
Kliknij plik .sh prawym przyciskiem myszy.
Najedź kursorem na Otwórz za pomocą .
Wybierz inne ... .
Powinieneś być w folderze Aplikacje . Otwórz folder Narzędzia i wybierz Terminal.app.
Jeśli nie możesz wybrać Terminal.app, zmień włączone aplikacje z Zalecanych aplikacji na Wszystkie aplikacje . Znajduje się na dole okna.
Jeśli chcesz otworzyć każdy .sh
plik za pomocą Terminal.app, zaznacz opcję Zawsze otwieraj za pomocą .
Naciśnij przycisk Otwórz w prawym dolnym rogu okna.
Powodem, dla którego nie działa po pobraniu jest to, że uprawnienia do plików na to nie pozwalają. Aby włączyć uprawnienia do wykonywania, otwórz Terminal i wpisz
chmod 755 /path/to/script
. Zamiast wpisywać pełną ścieżkę, możesz przeciągnąć skrypt do okna Terminal z Findera. Następnie, aby wykonać, wystarczy wejść
/path/to/script
. Ponownie możesz przeciągnąć i upuścić plik w oknie terminala. Ta składnia powinna uruchomić skrypt przy użyciu poprawnej powłoki zdefiniowanej w pierwszym wierszu skryptu.
sh
oznacza, że skrypt powłoki nie „uruchamia skryptu w tej powłoce”.