Draconis Opublikowano 7 Grudnia 2011 Udostępnij Opublikowano 7 Grudnia 2011 Witam. Piszę niezbyt skomplikowany skrypt do szkoły i mam drobny problem. Mam zmienne, które są właściwe stałe. A00, A01 ... A09 A10, A11 ... A19 ... z wartościami tekstowymi. Mam też zmienne x i y, które przybierają jednocyfrowe wartości Mam też kod: k=' A$x$y # Próbowałem tu różnych kombinacji, lecz żadna nie dawała oczekiwanych rezultatów echo $k # -----------------------------------||----------------------------------------- Czy jest możliwe, i jeżeli jest, wyświetlenie zawartości zmiennej odpowiadającej k, zamiast k? Przykładowo, jeżeli A00="__________" i chciałbym, żeby to zostało wyświetlone, zamiast "$A00" Pozdrawiam i dziękuję za wszelką pomoc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Raalsky Opublikowano 7 Grudnia 2011 Udostępnij Opublikowano 7 Grudnia 2011 A nie pomyliłeś czasem Batch z BASH? Batch to inaczej pliki wsadowe dla systemu Windows. Bash to prędzej w Linuxie znajdziesz. Dla Batch: set variable=To jest jakis tekst echo %variable% Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 7 Grudnia 2011 Administratorzy Udostępnij Opublikowano 7 Grudnia 2011 "${A00}" Konkatenacja zmiennych: http://splike.com/wiki/Bash_Scripting_FAQ#...nate_strings.3F Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Grudnia 2011 Autor Udostępnij Opublikowano 7 Grudnia 2011 @Raalsky Nie, nic nie pomyliłem, skrypt ma być w Bashu @gnysek Niestety nie o to mi chodzi, działałoby gdybym z góry wiedział co chcę wyświetlić Może lepiej umieszczę większy kawałek kodu, omijając zbędne rzeczy. A00="aa" A01="ab" A02="fa af" #wartości są inne, i jest więcej zmiennych, ale to uproszczenie ... x=0 #w kodzie zamiast 0 jest losowana liczba. y=0 while [ $y -le 9 ]; do k='$'A$x$y echo $k y=$[y + 1] done W wyniku mam teraz $A00 $A01 $A02 $A03 $A04 $A05 $A06 $A07 $A08 $A09 A chciałbym mieć aa ab fa fa ... Próbowałem już wcześniej kombinacji w stylu ${k},${$k}(jakkolwiek głupio to wygląda to i tak nie działa)i innych, zmieniałem też k='$'A$x$y na k=A$x$y bądź z jakąś inną kombinacją cudzysłowów, apostrofów obu rodzajów itp. k=A$x$y echo ${k} ... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 7 Grudnia 2011 Administratorzy Udostępnij Opublikowano 7 Grudnia 2011 Może jak w PHP, echo $$k ? :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Draconis Opublikowano 7 Grudnia 2011 Autor Udostępnij Opublikowano 7 Grudnia 2011 Już próbowałem, niestety w Bashu w zmiennej $$ zawarty jest ID procesu A=3 więc kiedy id procesu wynosi 3660 echo $$A da mi 3660A echo $$$A da natomiast 36603. Mam inny pomysł na skrypt, ale w tamtym jeszcze mniej się orientuję. Pobieram pierwszą komórkę z pliku komendą: li=`head -n 1 plik` Wie ktoś może, czy da się usunąć pierwszą linijkę z pliku a pozostałe przesunąć w górę? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
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ę