Jak to zrobić? Napisałem skrypt w shellu, mogę go uruchamiać “. nazwa.sh” a jak zrobic aby się uruchomił po prostu wpisując komendę “nazwa”?
Rozumiem że to jest na powłokę sh?
Spróbuj wrzucić go do katologu /bin albo /usr/bin i daj chmod u+x twój_skrpyt
zmień mu nazwę z “nazwa.sh” na “nazwa”. *nix nie używa rozszerzeń, to tylko dla Twojej informacji. Najpierw zadeklaruj interpreter. Sprawdź, gdzie siedzi:
[bachus@mydevil]:<~>$ which sh
/bin/sh
Zadeklaruj go na początku skryptu:
#!/bin/sh
[bachus@mydevil]:<~>$ nano pain3
#!/bin/sh
echo Hello
Skrypt ma się wykonywać:
[bachus@mydevil]:<~>$ chmod +x pain3
Powinno banglać w tej postaci.
Zróbmy tak
mkdir ~/skrypty ##tworzy w twoim katalogu domowym ,katalog skrypty , tam będą twoje skrypty umieszczane
echo “export PATH=”$PATH:~/skrypty"" >>~/.bashrc ## dodaje na koniec do zmiennej PATH twój katalog gdzie będzie ci szukał skryptów, i to wpisujesz do pliku startowego
Aby móc te skrypty odpalać wpierw uczyń te skrypty wykonywalnymi .
TE 2 KOMENDY WYKONUJESZ BEZ ROOT’A.
EDIT:
Po zrobieniu tego wydaj polecenia ze zwykłego użytkownika
source ~/.bashrc ##przeładuje plik
lub uruchom ponownie terminal
Dodaj alias w .bashrc
alias skryptxyz=“cd /home/pain3hp/skrypty && ./skryptxyz”
Aby móc go wykonać:
cd /home/pain3hp/skrypty && chmod +x skryptxyz.sh
Zrestartuj terminal (lub source ~/.bashrc)
Bez urazy (nie to mam na celu tj. krytykę Ciebie, doceniam wysiłki) , twój sposób nie zadziała zrobiłeś literówkę w tym aliasie . Po drugie po co alias , jak może dodać katalog do zmiennej PATH i to załatwi sprawę .Twoje rozwiązanie jest na jeden skrypt równie dobrze by można było dać :
alias cmd="/path/skrypt.sh"
Natomiast PATH będzie lepsze bo dla n plików będących w katalogu . Z góry przepraszam , jeśli cię uraziłem tą krytyką .
Skrypty “lokalne” to raczej nie do katalogów systemowych.
Lepiej do:
/usr/local/bin
lub:
~/bin
(/home/user/bin)
tom@dhcppc0:~$ ls -hal /home/tom/bin
razem 60K
drwxr-xr-x 2 tom tom 4,0K lip 16 00:43 .
drwxr-xr-x 99 tom tom 4,0K lip 16 00:43 ..
-rw------- 1 tom tom 49 mar 25 23:53 .directory
-rwxr-xr-x 1 tom tom 35 mar 3 19:01 ekran
-rwxr-xr-x 1 tom tom 250 kwi 8 2014 kopia_chromium
-rwxr-xr-x 1 tom tom 136 lut 10 2013 kopia_mozilla
-rwxr-xr-x 1 tom tom 196 lut 17 16:31 kopia_pakietów
-rwxr-xr-x 1 tom tom 204 lut 22 22:25 kopia_PlayOnLinux
-rwxr-xr-x 1 tom tom 176 lut 22 22:26 kopia_wine
-rwxr-xr-x 1 tom tom 129 sty 24 2014 reset_memory
-rwxr-xr-x 1 tom tom 134 mar 19 2014 reset_PlayOnLinux
-rwxr-xr-x 1 tom tom 68 lut 22 22:50 reset_swap
-rwxr-xr-x 1 tom tom 107 lut 22 22:36 reset_wine_f
-rwxr-xr-x 1 tom tom 83 mar 20 2012 wget_winetricks