borzole Napisano Lipiec 11, 2009 Zgłoszenie Share Napisano Lipiec 11, 2009 Witam, Chciałem sobie zrobić małą bibliotekę funkcji dla bash i uparłem się żeby import do skryptu był jak najprostszy. 1. biblioteka bslstd echo "jestem bslstd" function bsHelp(){ echo "test z $0" } 2. pani bibliotekarka czyli skrypt pośredniczący bsimport #!/bin/bash echo "Ms Dewey" if [ -f /usr/local/sbin/$@ ]; then . /usr/local/sbin/$@ echo $? else echo f*ck! fi 3. jakiś szybki skrypcik robaczek #!/bin/bash bsimport bslstd bsHelp Rezultat ./robaczek Ms Dewey jestem bslstd 0 /usr/local/sbin/silnik: line 8: bsHelp: nie znaleziono polecenia O ile polecenie dotrą do 3 pliku, to funkcje i parametry nie. Dlaczego? Może macie jakiś inny intuicyjny sposób na import "biblioteki" bez podawania za każdym razem ścieżki. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
qmic Napisano Lipiec 12, 2009 Zgłoszenie Share Napisano Lipiec 12, 2009 O ile polecenie dotrą do 3 pliku, to funkcje i parametry nie. Dlaczego? Może macie jakiś inny intuicyjny sposób na import "biblioteki" bez podawania za każdym razem ścieżki. Bo wywołujesz plik a nie go includujesz: source mojabiblioteka.sh echo f*ck! Jaki user friendly komunikat Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Lipiec 12, 2009 Autor Zgłoszenie Share Napisano Lipiec 12, 2009 ehh, tak to jest jak się nie myśli. Ten plik pośredniczący przecież niczemu nie służy i nie wiem skąd mi się ubzdurało, że jest potrzebny (chciałem tam wrzucić obsługę błędów, wyszukiwanie biblioteki itp. kosmetyczne funkcje). Jeśli biblioteka jest w ścieżce i ma atrybut +x to zwykłe source plik wystarcza. Także najpierw trzeba się przespać, a potem pisać temat na forum, żeby na drugi dzień takich kwiatków nie było Nie mniej 'wciągnięcie" funkcji z A do C bez użycia komendy "source" w C jest wciąż otwartym pytaniem, tyle ze zastosowania nie ma Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
fafig Napisano Lipiec 12, 2009 Zgłoszenie Share Napisano Lipiec 12, 2009 hmm w skryptach widzialem cos takiego: . /sciezka/nazwa_skryptu.sh skrypt musi byc +x Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Lipiec 12, 2009 Autor Zgłoszenie Share Napisano Lipiec 12, 2009 . /sciezka/nazwa_skryptu.sh no to znam, a qmic mi wyjaśnił różnice między "." a "source" bo wcześniej myślałem że to stosuje się zamiennie (choć nadal nie wiem co to właściwie zmienia). Z tym, że jak podajesz pełną ścieżkę to "skrypt-biblioteka" nie musi być wykonywalny. Atrybut "wykonywalny" nadaję tylko dlatego, że to pozwala automatycznie znaleźć plik w ścieżkach systemu, więc nie martwię się o to gdzie on jest. [EDIT] 1. a tak w ogóle to jest coś w rodzaju unsource plik ? 2. ma ktoś gotową funkcję do pobierania parametrów z plików użytkownika? Chodzi mi o pliki np. [kategoria] ustawmnie = 18 [EDIT] tak z grubsza o co mi chodzi: # pobranie parametru z pliku konfiguracyjnego # getParam file parametr function getParam(){ file=$1 param=$2 # czy istnieje plik z parametrami if [ -f $file ]; then # każda linia z "#" jest pomijana tmp=`cat $file | grep -v \# | grep $param | grep = |cut -d'=' -f2-` #@TODO # if $param PUSTE to ERROR return $tmp else echo -e "Nie ma pliku: $file \n parametr pobrany: NIE " return 1; fi } # zapis parametru do pliku # setParam file parametr wartość function setParam(){ file=$1 param=$2 wartosc=$3 # czy istnieje plik z parametrami if [ -f $file ]; then # @TODO # add: obsługa spacji, teraz zakłada brak spacji # nie szanuje na razie :) zakomentowanych parametrów # usunięcie lini z tym parametrem sed -e "/$param=/d" $file -i 2>/dev/null # wstawienie nowej echo -e "$param=$wartosc" >> $file else # tworzenie pliku i wpisu echo -e "$param=$wartosc" > $file fi } jak tu zaimplementować obsługę [kategorii]? Jeśli w różnych kategoriach pojawi się taka sama nazwa parametru np. "wysokość". Trochę z sed musiałbym poeksperymentować, ale może ktoś już walczył z obsługą parametrów z takich plików Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Lipiec 12, 2009 Zgłoszenie Share Napisano Lipiec 12, 2009 Jeśli chodzi o "." i "source" to nie ma znaczenia, bo są to równorzędne polecenia → "man source" m.in. . filename [arguments] source filename [arguments] Read and execute commands from filename in the current shell environment and return the exit status of the last command exe- cuted from filename. Dobre źródło wiedzy jak się bawić z includowaniem funkcji stanowią skrypty w /etc/init.d oraz biblioteka (chyba tak można to nazwać?) "functions". Niemal każdy ze skryptów w tym katalogu na początku woła ". /etc/init.d/functions". Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
fafig Napisano Lipiec 12, 2009 Zgłoszenie Share Napisano Lipiec 12, 2009 dobrze gada polac mu . wlasnie to mialem na mysli mowiac o sktyptach Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Lipiec 12, 2009 Autor Zgłoszenie Share Napisano Lipiec 12, 2009 Już dziękuję, całe zamieszanie wynikało z pewnej zaprzeszłej naleciałości. W prezencie wam pokaże czemu mi się zachciało biblioteki: http://code.google.com/p/bsfl/ jak ją zobaczyłem zapragnąłem zrobić własną Niby tylko kilka funkcji, ale ...inspiruje. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
qmic Napisano Lipiec 12, 2009 Zgłoszenie Share Napisano Lipiec 12, 2009 jak ją zobaczyłem zapragnąłem zrobić własną Niby tylko kilka funkcji, ale ...inspiruje. Tylko po co odkrywać koło na nowo Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Lipiec 12, 2009 Autor Zgłoszenie Share Napisano Lipiec 12, 2009 Tylko po co odkrywać koło na nowo ja tam lubię dwa kółka Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
qmic Napisano Lipiec 13, 2009 Zgłoszenie Share Napisano Lipiec 13, 2009 ja tam lubię dwa kółka Gdyby użytkownicy Linuksa spędzali swoją produktywność na generowaniu nowych rzeczy a nie pisaniu 15 serwera dźwięku to Linux by się rozwijał dużo szybciej Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Lipiec 13, 2009 Autor Zgłoszenie Share Napisano Lipiec 13, 2009 1. mała biblioteka dla siebie, jak mała piwniczka z winem 2. Gdyby użytkownicy Linuksa spędzali swoją produktywność na generowaniu nowych rzeczy a nie pisaniu 15 serwera dźwięku to Linux by się rozwijał dużo szybciej Gdyby to wszystko jeszcze miało ręce i nogi to może. Jeśli jest 15 edytorów tekstu, które prawie nic nie robią i mają podobny opis to jak tu wspierać taki projekt. Żaden się nie wybije bez odrobiny szczęścia. Podobnie masakryczna jazda z playerami. Wszystkie identyczne. Tak naprawdę to myślę, że poprostu brak scentralizowanej organizacji, która by wytaczała cele i oficjalnie wspierała dany projekt, kasując pozostałe jako "gupie pomysły" i " już tu nie pracujesz". No ale wolność ponad wszystko robi swoje i widać że tyrania w firmie, gdzie jest jakiś przełożony, robi swoje. brak planu = brak rezultatów Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
fafig Napisano Lipiec 13, 2009 Zgłoszenie Share Napisano Lipiec 13, 2009 Jeśli jest 15 edytorów tekstu, które prawie nic nie robią i mają podobny opis to jak tu wspierać taki projekt. jak to nic nie robia? a gadales z emacsem ? bo ja tak fajny z niego koles Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się