Fórum Root.cz

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

Název: Skript v BASHi
Přispěvatel: Palo kdy 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 kdy 13. 06. 2012, 18:32:12
srandista :)
Název: Re:Skript v BASHi
Přispěvatel: smoofy kdy 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 kdy 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 kdy 13. 06. 2012, 19:49:13
Citace od: vn158 kdy 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

díky za zaujimavé riešenie
Název: Re:Skript v BASHi
Přispěvatel: kozec kdy 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:

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
Název: Re:Skript v BASHi
Přispěvatel: Palo kdy 13. 06. 2012, 20:31:35
Citace od: kozec kdy 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:

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