Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Palo 13. 06. 2012, 17:47:32

Název: Skript v BASHi
Přispěvatel: 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.
Název: Re:Skript v BASHi
Přispěvatel: jjjjj 13. 06. 2012, 18:32:12
srandista :)
Název: Re:Skript v BASHi
Přispěvatel: smoofy 13. 06. 2012, 18:59:53
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.
Název: Re:Skript v BASHi
Přispěvatel: vn158 13. 06. 2012, 19:07:43
oneliner: X=60; Y=20; cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w $X | head -n $Y
Název: Re:Skript v BASHi
Přispěvatel: Palo 13. 06. 2012, 19:49:13
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
Název: Re:Skript v BASHi
Přispěvatel: kozec 13. 06. 2012, 19:49:39
Tu je problem ten, ze bash nevie viacrozmerne polia. Ale ak sa citis dostatocne strelene, mozes skusit nieco taketo:

Kód: [Vybrat]
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
Kód: [Vybrat]
for i in $(seq 1 $Si) ; do
for j in $(seq 1 $Si) ; do
echo -n ${M[$((   ($i*$Sj) + $j   ))]}" "
done
echo
done
Název: Re:Skript v BASHi
Přispěvatel: Palo 13. 06. 2012, 20:31:35
Tu je problem ten, ze bash nevie viacrozmerne polia. Ale ak sa citis dostatocne strelene, mozes skusit nieco taketo:

Kód: [Vybrat]
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
Kód: [Vybrat]
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