Odpowiedzi:
$prompt: /path/to/scripti naciśnij Enter. Pamiętaj, że musisz upewnić się, że skrypt ma uprawnienia do wykonywania.
/path/to katalogu, np. Za pomocą cd /path/topolecenia, możesz wejść, ./scriptaby uruchomić skrypt. Nie zapomnij w tym przypadku o znaku „./” przed „script”
Jeszcze inny sposób wykonania tego (tym razem bez ustawiania uprawnień do wykonywania):
bash /path/to/scriptname
cd do katalogu zawierającego skrypt lub umieść go w folderze bin znajdującym się w $ PATH
następnie wpisz
./scriptname.sh
jeśli w tym samym katalogu lub
scriptname.sh
jeśli znajduje się w folderze bin.
./scriptname.shdziała dla mnie, ale scriptname.shdaje scriptname.sh: command not found. -rwxr-xr-xto jego uprawnienia.
cdw ogóle gdziekolwiek indziej, prowadzi do kolejnego nieporozumienia powszechnego wśród początkujących. O ile skrypt wewnętrznie nie ma zależności, które wymagają, aby działał w określonym katalogu (np. Konieczność odczytania pliku danych, na który skrypt w niewytłumaczalny sposób nie udostępnia opcji wskazania), nigdy nie powinieneś potrzebować cdnigdzie, aby go uruchomić i bardzo często nie chce.
Mógłbyś:
sh scriptname.sh
shjest dowiązaniem do bash, lub jeśli skrypt nie korzysta z żadnej Bash specyficzną konstrukcję. W pierwszym przypadku używanie bashzamiast shjest jedynym poprawnym, przenośnym rozwiązaniem; w tym drugim przypadku nie jest to poprawna odpowiedź na to konkretne pytanie, ponieważ OP zapytał o radę dotyczącą skryptu Bash. Podanie złej odpowiedzi jest nieodpowiedzialne; użytkownicy, którzy nie rozumieją różnicy, często publikują w tym miejscu i trzeba im pokazać, dlaczego ta odpowiedź „zadziałała dla mnie” nie zadziałała w ich przypadku.
Po pierwsze trzeba uczynić go wykonywalnym przy użyciu: chmod +x name_of_your_file_script.
Po utworzeniu pliku wykonywalnego możesz go uruchomić za pomocą ./same_name_of_your_file_script
Zmień katalog na miejsce, w którym znajduje się skrypt , używając polecenia cd
Następnie wpisz
bash program-name.sh
cdnigdzie; możesz podać dowolnie złożoną nazwę ścieżki jako argument bash; faktycznie, każdy program, który przyjmuje argument nazwy pliku, działa w ten sposób (lub jest przerażająco, otępiająco zepsuty).
To stary wątek, ale trafiłem na niego i jestem zaskoczony, że nikt jeszcze nie udzielił pełnej odpowiedzi. Więc oto idzie ...
P: Jak to zrobić w terminalu?
Nieporozumienia i konflikty:
sudorobić nic z tego. To polecenie jest zarezerwowane do uruchamiania poleceń jako inny użytkownik lub użytkownik „root” (administrator). Świetny post tutaj .(Osoba, która dopiero uczy się, jak wykonywać skrypty, nie powinna używać tego polecenia, chyba że jest to naprawdę potrzebne, na przykład instalacja nowego programu. Dobre miejsce do umieszczenia skryptów jest w folderze ~ / bin. Możesz się tam dostać, wpisując cd ~/binlub cd $HOME/binz poziomu monitu terminala. Będziesz mieć pełne uprawnienia w tym folderze).
Aby „wykonać ten skrypt” z terminala w systemie typu Unix / Linux, musisz zrobić trzy rzeczy:
Poinformuj system o lokalizacji skryptu. (Wybierz jedno)
/path/to/script.sh.). Możesz zweryfikować pełną ścieżkę, wpisującpwd lub echo $PWDw terminalu../jako ścieżki (np./script.sh .). Łatwo.PATHi wpisz nazwę (np script.sh.). Możesz zweryfikować system PATH, wpisując echo $PATHlub echo -e ${PATH//:/\\n}jeśli chcesz uporządkowaną listę.Poinformuj system, że skrypt ma uprawnienia do wykonania. (Wybierz jedno)
chmod +x /path/to/script.shw terminalu.chmod 755 /path/to/script.shjeśli wolisz liczby. Istnieje wielka dyskusja z wykresu chłodnym tutaj .Podaj systemowi typ skryptu. (Wybierz jedno)
BASH /path/to/script.sh lub PHP /path/to/script.php) Jeśli skrypt ma rozszerzenie, takie jak .php lub .py, jest częścią nazwy skryptu i należy je dołączyć.#!/bin/bash ) w swoim przykładzie. Jeśli masz to jako pierwszą linię skryptu, system użyje tego programu do wykonania skryptu. Nie ma potrzeby pisania programów ani używania rozszerzeń.PATH, używając, #!/usr/bin/enva następnie nazwy programu (np. #!/usr/bin/env bashLub #!/usr/bin/env python3). Istnieją zalety i wady, które szczegółowo omówiono tutaj .script.shi script.phpsą to dosłowne nazwy plików tych skryptów, i że jeśli umieścisz rozszerzenie w nazwie pliku, musisz je dołączyć podczas uruchamiania skryptu (i odwrotnie; jeśli skrypt nie t mieć rozszerzenie, nie umieszczaj go). Jest to odmienne od np. DOS, w którym można pominąć .batlub .exez nazwy pliku, a pliki muszą mieć rozszerzenie z małego zestawu, aby mogły być uznane za wykonywalne.
Jeśli jesteś w katalogu lub folderze, w którym plik skryptu jest dostępny, po prostu zmień uprawnienia do pliku w trybie wykonywalnym, wykonując
chmod +x your_filename.sh
Następnie uruchomisz skrypt za pomocą następującego polecenia.
$ sudo ./your_filename.sh
Wyżej "." reprezentują bieżący katalog. Uwaga! Jeśli nie jesteś w katalogu, w którym znajduje się plik skryptu bash, zmień katalog, w którym znajduje się plik, używając
cd Directory_name/write the complete path
Komenda. W przeciwnym razie skrypt nie będzie działał.
sudojest źle i potencjalnie strasznie źle, jeśli używasz go na niezaufanym skrypcie, który nadużywa mocy, które niepotrzebnie mu dałeś.
cdgdzieś znaleźć, jest trudna do zrozumienia, ale prawdopodobnie także błędna.
chmod +x scriptnamea potem./scriptname.