/srv/irclogs.ubuntu.com/2016/11/20/#ubuntu-pl.txt

mcgiwerwitam. Czy tu mogę zapytać o pomoc w skryptowaniu w bashu?15:56
AleksiejLublovzapytać możesz, ale czy dostaniesz odpowiedź to inna sprawa :)16:02
mcgiwerchodzi o to że próbuję napisać funkcję ułatwiającą pobieranie kluczy do repozytoriów i potrzebna mi w tym pomoc16:04
Ashirena wiec16:14
mcgiwerwstępna wersja wygląda tak: http://wklej.org/id/2962090/16:17
mcgiwerproblem w tym, że \$$a nie będzie prawdopodobnie traktowana jako zmienna16:17
Ashirenoahi16:23
Ashirenhmm16:23
Ashirenno tak bo \ eskapuje ~~16:29
mcgiwerjak bym dał $$ to by mi wstawił ID procesu z literą a zamiast zamienić $a na wartość którą daje pętla for i poprzedzenie ją znakiem $, co spowodowało by zamianę tej wartości na zmienną16:32
mcgiwerchodzi o to żeby \$$a zamieniło się w zmienną np. $216:32
mcgiwer(w zależności od aktualnej wartości dla $a)16:33
Ashirenzmienna zmiennej?16:33
Ashirenhttp://stackoverflow.com/questions/10757380/bash-variable-variables16:33
Ashirentj chodzi ci o a = kupa; kupa = 5; $a == 516:35
mcgiwernie do końca... chodzi o to że zmienna $a może przybrać wartość od 2 do liczby podanych argumentów16:45
BlessJahmcgiwer: jeśli piszesz w bashu (a nie sh), to używaj [[ ]] do testów, jeśli chcesz iterować po $1 $2 $3 itd, to man bash i szukaj shift w sekcji 'SHELL BUILTIN COMMANDS', albo pętla for w SHELL GRAMMAR, w Compund commands16:45
BlessJahdokładnie to co chcesz zrobić mógłbyś przez eval zrobić, ale użyj shift albo `for name ; do...`16:47
BlessJahmcgiwer: poza tym http://www.shellcheck.net/16:48
mcgiwerBlessJah: nie mam jeszcze tak dużej wprawy w pisaniu w bash-u... poza tym, jeśli looknąłeś do mojej "wklejki" to tam możesz zobaczyć, że pętla for jest w podanym przez ciebie formacie: for name ; do...16:48
BlessJahnie, nie jest "for name [ [ in [ word ... ] ] ; ] do " kwadratowe nawiasy znaczą że coś jest opcjonalne16:49
BlessJahbtw, pytanie "jak pobrać zmienną której nazwa jest w innej zmiennej" a.k.a. $$var to http://xyproblem.info/ ;)16:50
mcgiwer@BlessJah: poprawiłem trochę kod i dostałem błąd jedynie w miejscu for gdzie użyłem zakresu: "Bash doesn't support variables in brace range expansions."16:55
BlessJahfoo() { for name; do echo $name; done; } ; foo a b c d16:56
BlessJahtak, 'for name; do...' to poprawna składnia pętli for w bashu16:57
mcgiwerpróbuję rozgryść dlaczego bash mi nie pozwala używać zakresu (Range) w pętli for i wywala błąd17:01
BlessJahmcgiwer: klasyczny przykład XY, przeczytaj pierwszy akapit: http://xyproblem.info/17:02
mcgiwerwiem co jest błędem, ale nie wiem jak go rozwiązać, ponieważ chcę aby pętla for przyjmowała zakres od 2 do liczby podanych argumantów, ale wywala że zakres nie akceptuje zmiennych17:08
BlessJahmcgiwer: po co chcesz iterować po zakresie 2..$#17:09
mcgiwerponieważ czasami trzeba podać na raz więcej kluczy do importu niż jeden, a to miało w tym pomóc17:10
BlessJahczyli chcesz iterować po kluczach które podałeś?17:11
mcgiwerpróba wklejenia ich jako 1 argument może nie zadziałać poprawnie17:11
BlessJahczyli chcesz po prostu iterować po argumentach?17:13
mcgiwerchciałem zrobić tak: pierwszy argument to URL serwera kluczy, a następne to ID kluczy17:13
BlessJahczyli chcesz iterować po argumentach: specjalna zmienna $@ zawiera listę argumentów17:14
mcgiwertak, ale trzeba najpierw jakieś argumenty zdefiniować żeby miało co pokazać ;)17:15
BlessJahmożesz użyć jej tak foo() { for bar in "$@" ; do echo "Arg: ${bar}" ; done } ; foo 1 2 3 417:15
mcgiwerzaraz spróbuję17:16
mcgiwercoś tam wyświetla, tylko przerzuca do nowej lini17:21
BlessJahtaka uroda echo17:22
BlessJahmcgiwer: programujesz w jakimś języku innym niż bash?17:30
mcgiwertak... w PHP17:31
BlessJahhttp://php.net/manual/en/control-structures.foreach.php17:32
mcgiwera echo nie powinno wyrzucać do nowej lini... takie działanie daje echo -e "\n"17:32
BlessJahfor value in "$@"17:32
BlessJahecho jest tutaj całkowicie nieistotne (poza tym powinno pokazywać nowe linie)17:33
BlessJahfoo() { for bar in "$@" ; do  printf "%s " "${bar}" ; done ; } ; foo 1 2 3 417:34
BlessJahmasz bez newline17:34
mcgiwerok. Wyświetla jak chciałem. Teraz pytanie jak to przerobić aby rozbić to na zmienne17:36
mcgiwerjak wspomniałem wcześniej, chciał bym aby $1 było url klucza a reszta ID klucza17:37
BlessJahs/url klucza/url serwera/17:37
BlessJahmcgiwer: to już są zmienne, moja pętla robi (prawie) to samo co twoja gdyby \$$n działało17:38
mcgiwersorki... miało być:  $1 było url serwera, a reszta url kluczy17:38
BlessJahfoo() { url="$1" ; shift ; for bar in "$@" ; do printf "%s %s\n" "${url}" "${bar}" ; done ; } ; foo http 2 3 417:41
BlessJahnowa rzecz to shift przed pętlą for17:41
BlessJahhttp://php.net/manual/en/function.array-shift.php17:42
BlessJahz tą różnicą, że nie zwraca wartości elementu17:43
mcgiwerznikam na jakiś czas. Odezwę się jak wrócę17:48
=== mcgiwer is now known as mcgiwer_AWAY
BlessJahspoko17:49
jacekowskiecho -n nie robi nowej lini21:04
jacekowskiecho bez niczego robi nowa linie21:04
Ashiren~ Paulo Coelho21:10
BlessJahjacekowski: ten ostatni spam doszedl czy nie?21:21

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!