Sanczo Napisano Styczeń 30, 2008 Zgłoszenie Share Napisano Styczeń 30, 2008 Chce zrobić następującą rzecz. W treści funkcji budować polecenie do wykonania (min. w pętli) dodając kolejne elementy do zmiennej typu string, następnie wywoływanej. Wynik wykonanego polecenia ma być przypisany zmiennej powiedzmy wynik. W treści funkcji prawidłowo budowane jest polecenie, moge je bez problemu wykonać z poziomu shella. Jednak w treści skryptu dostaje komunikat, że nie moge go wykonać: ./starter.ksh[231]: showEmptyGroupsNames[292]: cut -d: -f1,3 /etc/group | grep ':22$\|:15$\|:101$\|:54321$\|:8$\|:9$\|:93$\|:20$\|:43$\|:21$' | awk 'BEGIN{FS=":"}; {print $1}': cannot execute treść skryptu odpowiedzialna za to wygląda mniej więcej tak: builded="cut -d: -f1,3 /etc/group | grep '" <tu pętla tworząca polecenie> do zmiennej builded dodawane są elementy zapytania przez operand += <koniec pętli> wynik=$($builded) # wywołanie polecenia Jak łatwo sprawdzić funkcja daje się bez problemu wykonać czy to pod Korn shell czy Bash. Need help badly bo już nie wiem jak to ugryzć a problem wydaje się szablonowy. Pod Bash spewnością rozwiązanie jest identyczne więc będe wdzieczny również za pomoc miłośników tego shella pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Luty 1, 2008 Zgłoszenie Share Napisano Luty 1, 2008 Nie wiem, czy dobrze zrozumiałem. #!/bin/bash builded="cut -d: -f1,3 /etc/group | grep " builded="${builded} ':22$\|:15$\|:101$\|:54321$\|:8$\|:9$\|:93$\|:20$\|:43$\|:21$' | awk 'BEGIN{FS=\":\"}; {print $1}'" wynik=$(eval $builded) echo $wynik Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Sanczo Napisano Luty 1, 2008 Autor Zgłoszenie Share Napisano Luty 1, 2008 Nie wiem, czy dobrze zrozumiałem. #!/bin/bash builded="cut -d: -f1,3 /etc/group | grep " builded="${builded} ':22$\|:15$\|:101$\|:54321$\|:8$\|:9$\|:93$\|:20$\|:43$\|:21 | awk 'BEGIN{FS=\":\"}; {print $1}'" wynik=$(eval $builded) echo $wynik Dokładnie to jest rozwiązanie, dzięki Iszk. Poradziłem sobie z tym już wczoraj ale zapomniałem napisać. Czyletność tego budowanego polecenia jeszcze można poprawić: #!/bin/bash builded="cut -d: -f1,3 /etc/group | egrep " builded="${builded} ':22$|:15$|:101$|:54321$|:8$|:9$|:93$|:20$|:43$|:21 | awk -F: {print $1}'" wynik=$(eval $builded) echo $wynik 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ę