Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Palo 13. 06. 2012, 17:47:32
-
Zdravím všetkých. Chcel by som poradiť ohľadom skriptovania v BASHi... Učím sa to a len tak skúšam, že ako by sa dal vyriešiť jednoduchý skript. Zadanie je takéto:
chcem vytvoriť maticu o rozmere X krát y aby bola naplnená akýmkoľvek obsahom (čísla, písmena, reťazce). Potrebujem aby sa zapisovala do nejakého súboru.
Skúšal som to rôznými metódami ale mám pocit akoby môj shell blbnul.
Díky za prípadné riešenia.
-
srandista :)
-
Nebylo by spatne napsat CO si zkousel a JAK ti to blblo. Takhle je to cely takovy na vode a tezko ti muze nekdo poradit.
-
oneliner: X=60; Y=20; cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $X | head -n $Y
-
oneliner: X=60; Y=20; cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $X | head -n $Y
díky za zaujimavé riešenie
-
Tu je problem ten, ze bash nevie viacrozmerne polia. Ale ak sa citis dostatocne strelene, mozes skusit nieco taketo:
Si=10
Sj=10
for i in $(seq 1 $Si) ; do
for j in $(seq 1 $Si) ; do
M[ $(( ($i*$Sj) + $j )) ]=$RANDOM
done
done
A pre vypis potom
for i in $(seq 1 $Si) ; do
for j in $(seq 1 $Si) ; do
echo -n ${M[$(( ($i*$Sj) + $j ))]}" "
done
echo
done
-
Tu je problem ten, ze bash nevie viacrozmerne polia. Ale ak sa citis dostatocne strelene, mozes skusit nieco taketo:
Si=10
Sj=10
for i in $(seq 1 $Si) ; do
for j in $(seq 1 $Si) ; do
M[ $(( ($i*$Sj) + $j )) ]=$RANDOM
done
done
A pre vypis potom
for i in $(seq 1 $Si) ; do
for j in $(seq 1 $Si) ; do
echo -n ${M[$(( ($i*$Sj) + $j ))]}" "
done
echo
done
tiež pekné... takto by ma to veru nenapadlo