[SOLVED]Bash - Losowe wyświetlanie zmiennych
-
- Sędziwy Jeż
- Posty: 81
- Rejestracja: 01 gru 2009, 21:52
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.10
- Środowisko graficzne: LXDE
- Architektura: x86_64
- Kontakt:
[SOLVED]Bash - Losowe wyświetlanie zmiennych
Witam.
Potrzebuję algorytmu, który bedzie losowo wyświetlał zmienne przez Zenity,np:
a="blabla"
b="bleble"
c="tralala"
I za każdym razem algorytm wybiera inną zmienną,która wyświetla w Zenity.
I mam jeszcze jedno pytanie.Chciałbym się nauczyć pisać algorytmy.Możenie mi poradzić jakąś dobrą stronę z kursem?
Potrzebuję algorytmu, który bedzie losowo wyświetlał zmienne przez Zenity,np:
a="blabla"
b="bleble"
c="tralala"
I za każdym razem algorytm wybiera inną zmienną,która wyświetla w Zenity.
I mam jeszcze jedno pytanie.Chciałbym się nauczyć pisać algorytmy.Możenie mi poradzić jakąś dobrą stronę z kursem?
- thalcave
- Przyjaciel
- Posty: 821
- Rejestracja: 08 lis 2006, 12:17
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Fluxbox
- Architektura: x86
Odp: Bash - Mieszanie zmiennych
Tu jest drobna pomoc:
Kod: Zaznacz cały
1 #!/bin/sh
2
3 rand=$(($RANDOM%3))
4
5 case $rand in
6 0) zmienna="ala";;
7 1) zmienna="ma";;
8 2) zmienna="kota";;
9 esac
10
11 echo $zmienna
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
-
- Sędziwy Jeż
- Posty: 65
- Rejestracja: 11 gru 2008, 11:20
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Bash - Mieszanie zmiennych
Możesz użyć bashowych tablic
Kod: Zaznacz cały
array=(jeden dwa "trzy i pol")
echo ${array[ $RANDOM % ${#array[@]} ]}
-
- Wytworny Kaczor
- Posty: 284
- Rejestracja: 30 paź 2005, 21:56
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
- Kontakt:
Odp: Bash - Mieszanie zmiennych
Myślałem o czymś podobnym ostatnio. Dynamiczne menu na podstawie informacji o katalogach w np. dropboksie. Mam u siebie podkatalogi o nazwie: img, screen, video i często przebijam się przez podkatalogi, żeby coś przesłać. Albo dymki z informacjami lub przypomnieniem.
Więcej o mnie znajdziesz na: http://ospulse.pl
-
- Sędziwy Jeż
- Posty: 81
- Rejestracja: 01 gru 2009, 21:52
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.10
- Środowisko graficzne: LXDE
- Architektura: x86_64
- Kontakt:
Odp: Bash - Losowe wyświetlanie zmiennych
Obydwa sposoby to duża pomoc,dziękuje 
Mam jeszcze pytanie.Troche się powtarzaja zmienne i elementy tablicy.Można coś na to zaradzić,żeby się w ogóle nie powtarzały?

Mam jeszcze pytanie.Troche się powtarzaja zmienne i elementy tablicy.Można coś na to zaradzić,żeby się w ogóle nie powtarzały?
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Odp: Bash - Losowe wyświetlanie zmiennych
Coś takiego wymyśliłem:
Kod: Zaznacz cały
#!/bin/bash
a=(raz dwa raz dwa trzy "cztery i pol" raz raz)
echo "BEFORE"
IFS=''
for i in ${a[@]}; do echo = $i; done
b=$(for i in ${a[@]}; do echo $i ; done | sort | uniq)
IFS=$'\n'
echo -e "\nAFTER"
for i in ${b[@]}; do echo = $i; done
-
- Sędziwy Jeż
- Posty: 65
- Rejestracja: 11 gru 2008, 11:20
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: Bash - Losowe wyświetlanie zmiennych
Do tego to z kolei możesz użyć baszowych hashy (tablic indeksowanych napisami).kampo pisze: Mam jeszcze pytanie.Troche się powtarzaja zmienne i elementy tablicy.Można coś na to zaradzić,żeby się w ogóle nie powtarzały?
Kod: Zaznacz cały
$ a=(raz dwa raz dwa trzy "cztery i pol" raz raz)
$ declare -A hash
$ for e in "${a[@]}"; do hash[$e]=1; done
$ for e in "${!hash[@]}"; do echo "[ $e ]"; done
[ trzy ]
[ raz ]
[ dwa ]
[ cztery i pol ]
$
-
- Sędziwy Jeż
- Posty: 81
- Rejestracja: 01 gru 2009, 21:52
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.10
- Środowisko graficzne: LXDE
- Architektura: x86_64
- Kontakt:
Odp: Bash - Losowe wyświetlanie zmiennych
otokan:
Też dobre,ale zawsze jest ta sama kolejność (oczywiście miesza).
Dziękuję wszystkim za pomoc.Mam juz "coś",więc na pewno dam rade
Też dobre,ale zawsze jest ta sama kolejność (oczywiście miesza).
Dziękuję wszystkim za pomoc.Mam juz "coś",więc na pewno dam rade

Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 8 gości