Wywo

Potrzebujesz pomocy z C, C++, perl, python, itp.
Hardek
Posty: 27
Rejestracja: 12 grudnia 2009, 18:26

Wywołanie funkcji w zewnętrznym skrypcie - bash

Post autor: Hardek »

Witam!

Od tygodnia usiłuje napisać skrypt (w bashu) służący do administracji serwerem i utknąłem w martwym punkcie.

Mam problem z wywołaniem konkretnej funkcji, która znajduję się w zewnętrznym pliku wraz z innymi funkcjami. Próbowałem zrobić to przy pomocy polecenie source oraz instrukcji znajdującej się pod adresem: http://dief.republika.pl/funkcje.html. Żadna z tych metod nie zadziałała. Istnieje jakieś proste rozwiązanie mojego problemu?
Awatar użytkownika
Rafal_F
Moderator
Posty: 2350
Rejestracja: 29 sierpnia 2008, 16:45

Post autor: Rafal_F »

A u mnie metoda z linku działa. Czy ścieżka do pliku z funkcjami jest prawidłowa?
Może wklej tu fragment swojego skryptu.
Hardek
Posty: 27
Rejestracja: 12 grudnia 2009, 18:26

Post autor: Hardek »

Rafal_F pisze:A u mnie metoda z linku działa. Czy ścieżka do pliku z funkcjami jest prawidłowa?
Ścieżka do pliku jest prawidłowa. Może opiszę to bardziej dokładnie. Mam pierwszy plik z kilkoma funkcjami i w tym pliku uruchamiam jedną z nich. Mam drugi plik i w nim wywołuje funkcję, lecz inną niż tę uruchomioną w pierwszym pliku. Rezultat tego to uruchomienie pliku pierwszego z tą uruchomioną funkcją pomimo zadeklarowania, że ma się uruchomić inna. Da się to obejść?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Najlepiej będzie jak wkleisz kod i pokażesz wprost co chcesz zrobić. Ja np. nie rozumiem istoty problemu po przeczytaniu Twojego opisu (a podejrzewam, że nie tylko ja).
Hardek
Posty: 27
Rejestracja: 12 grudnia 2009, 18:26

Post autor: Hardek »

lessmian2 pisze:Najlepiej będzie jak wkleisz kod i pokażesz wprost co chcesz zrobić.
Wklejam tutaj fragment kodu, co prawda nie ten co napisałem, lecz oddający mój problem (proszę nie patrzeć na poprawność).

Plik pierwszy (test1):

Kod: Zaznacz cały

#!/bin/bash

a=0

function funkcja1
{
echo "Podaj a"
while [ "$a" != "1" ] 
read a
do
echo -e 'Funkcja 1'
done
}

function funkcja2
{
echo -e 'Funkcja 2'
}

function funkcja3
{
echo -e 'Funkcja 3'
}

function funkcja4
{
echo -e 'Funkcja 4'
}


funkcja1
Plik drugi (test2):

Kod: Zaznacz cały

#!/bin/bash

. test1
funkcja3
I teraz co zrobić by przekierował mnie do funkcji3 pomimo, że w pliku pierwszym (test1) uruchamiam funkcja1.
sethiel
Junior Member
Posty: 762
Rejestracja: 28 stycznia 2008, 11:50
Lokalizacja: Wrocław

Post autor: sethiel »

Przecież zgodnie z powyższym z funkcja1 nie uruchamiasz funkcja3, więc jak ona ma ci się uruchomić?

To w funkcja1 powinieneś dać wywołanie funkcja3 żeby to miało jakiś sens, ,,if else''.
ODPOWIEDZ