Po pierwsze, używam Maca.
Następnie muszę wykonać ten plik "file.sh", który nazwiemy. Za każdym razem, gdy muszę go wykonać, muszę otworzyć Terminal i wpisać:
cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
To jest w porządku, ale wydaje mi się, że byłoby o wiele szybciej, gdybym wykonał plik po dwukrotnym kliknięciu, nie sądzisz?
Moje pytanie brzmi, jak sprawić, by ten plik był wykonywalny poprzez dwukrotne kliknięcie?
Moje pomysły były albo:
a) wpisać coś takiego jak chmod w terminalu i zmienić uprawnienia?
b) zrobić plik, umieścić w nim kod, który napisałem powyżej ^ i uczynić ten plik wykonywalnym?
c) jakoś zrobić automatyzację, aby to zrobić?
Który sposób jest najlepszy, czy jest jeszcze lepszy sposób? Proszę również wyjaśnić jak najwięcej, jestem nowy w Terminalu. Dzięki.
bash
macos
terminal
executable
Jakub
źródło
źródło
Odpowiedzi:
Domyślnie
*.sh
pliki są otwierane w edytorze tekstu (Xcode lub TextEdit). Aby utworzyć skrypt powłoki, który będzie wykonywany w Terminalu po otwarciu, nadaj mu nazwę rozszerzeniem „polecenie”, npfile.command
.. Domyślnie są one wysyłane do terminala, który wykona plik jako skrypt powłoki.Musisz także upewnić się, że plik jest wykonywalny, np .:
Bez tego Terminal odmówi wykonania tego.
Zauważ, że skrypt nie musi zaczynać się od
#!
prefiksu w tym konkretnym scenariuszu, ponieważ Terminal specjalnie organizuje wykonanie go z domyślną powłoką. (Oczywiście możesz dodać#!
linię, jeśli chcesz dostosować używaną powłokę lub jeśli chcesz mieć pewność, że możesz ją wykonać z wiersza poleceń, używając innej powłoki).Zwróć również uwagę, że Terminal wykonuje skrypt powłoki bez zmiany katalogu roboczego. Będziesz musiał rozpocząć skrypt od
cd
polecenia, jeśli faktycznie potrzebujesz go do uruchomienia z określonym katalogiem roboczym.źródło
cd "`dirname "$0"`"
aby ustawić bieżący katalog roboczy na katalog, w którym znajduje się twój skrypt powłoki.open -n ...
polecenia. Działa, ale za każdym razem otwiera się okno terminala i pokazuje mi komunikat „[Proces zakończony]”. Czy można w jakiś sposób zapobiec pojawianiu się okna terminala?Całkowicie usuń rozszerzenie, a następnie kliknij je dwukrotnie. Większość skryptów powłoki systemu wygląda tak. Dopóki ma shebang , będzie działać.
źródło
Możesz po prostu powiedzieć Finderowi, aby otworzył
.sh
plik w Terminalu:Będzie to miało dokładnie taki sam efekt, jak zmiana nazwy na,
.command
ale… nie musisz zmieniać jej nazwy :)źródło
Nazwa pliku powinna być umieszczona w cudzysłowie. Ponieważ używam Mac-> W moim przypadku zawartość pliku wsadowego to
cd / Users / yourName / Documents / SeleniumServer
java -jar selenium-server-standalone-3.3.1.jar -role hub
Na pewno zadziała
źródło
możesz zmienić plik wykonywalny, używając w
chmod
ten sposóbi użyj tego polecenia do wykonania
źródło