Mimo odpowiedniego nagłówka, skrypt nie chce się uruchomić


(Taki1gosc) #1

Czesc,

Napisałem sobie prosty skrypt w bashu do odpalania Mplayera i poprzez niego internetowego radia.

Skryptowi nadałem uprawnienia (polecenie chmod +x ) oraz wstawilem naglowek: #!/bin/bash. Problem polega na tym że aby uruchomic skrypt musze w konsoli poprzedzic go słowem bash, inaczej konsola zwraca error "command not found"

System to Xbuntu 11.04

Nie wiem w czym problem, czy to jakies specjalne zabezpieczenie powloki bash w Ubuntu (Xbuntu)???


(roobal) #2

Wklej zawartość tego skryptu.

Pozdrawiam!


(Sawyer47) #3

Po prostu jeśli nie podasz ścieżki do pliku, bash szuka skryptu o takiej nazwie w katalogach ze zmiennej $PATH (czyli np. u mnie /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games)

Jeśli chcesz odpalić skrypt, który znajduje się w bieżącym katalogu musisz jawnie określić ścieżkę: ./nazwa_pliku (przynajmniej tak podejrzewam, że w tym problem).


(Taki1gosc) #4

Problem rozwiązany, faktycznie trzeba jawnie określić ścieżkę.

Dla zainteresowanych poniżej kod skryptu:

#!/bin/bash

clear

echo 'Please select ID of radio to run it!'

echo

echo '[1] DiFM: Clasic EuroDance'

echo '[2] DiFM: EuroDance'

echo '[3] Radio Zet'

echo

echo '### To stop use Ctrl + z ###'

echo 

echo "Play radio ID:" 

read radio


if [$radio = 1] || [$radio = 2] || [$radio = 3]


	then


echo "Chosen radio: $radio"


while [$radio = 1]

do

mplayer http://scfire-ntc-aa04.stream.aol.com/stream/1024

done


while [$radio = 2]

do

mplayer http://u14.di.fm:80/di_classiceurodance

done


while [$radio = 3]

do

mplayer http://91.121.179.221:8050/

done	


	else


	echo 'Not valid ID radio ID'

		echo 'Exit!'

		exit 0


fi

(marcin82) #5

Odnośnie tego, co pisał kolega nr47

Aby mócy wykonywać skrypt bez podawania ścieżki bezwzględnej, wykonaj dowiązanie symboliczne skryptu to któregoś z tych katalogów, np. /usr/bin:

ln -s /ścieżka/do/skryptu.sh /usr/bin