- alper061 blogja
- A hozzászóláshoz be kell jelentkezni
- 1711 megtekintés
Hozzászólások
mostmár megyek aludni, ezért csak subscribe
- A hozzászóláshoz be kell jelentkezni
próbáld meg átrakni máshova a code részletet, mert a blog szekciót sikeresen szétcseszted
- A hozzászóláshoz be kell jelentkezni
Így gondoltad?
- A hozzászóláshoz be kell jelentkezni
- Tanuld meg, ifju jedi lovag, az informatikaban mindig nullatol szamolunk! :-)
- Ha jol latom, ez tenyleg fullra Bash script. Ebben az esetben az expr helyett lehet hasznalni a $(( kifejezes )) formulat, mely egyszerubbe teszi a dolgokat.
- A $tipp valtozot tedd idezojelekbe, es ellenorizd, hogy nem ures-e ([ -n "$tipp" ]), mert ha jol latom, erre vonatkozoan nincs vedelem a scriptben, es az ures valasztol meghulyulhet (syntax error).
- Ezen felul idezojelek nelkul tamadhatova is valik a script, hiszen egy ']] && rm -fr /* && [[' jellegu valasz is lehetseges, es idezojel nelkul ez siman vegrehajtodik...
Kisse keso van mar, ugyhogy most csak ennyit vettem eszre.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Sorsolásra:
seq 1 90 | shuf -n 5
Kicsit egyszerűbb, és gyorsan működik :)
Szerk.:
kicsit off, de ez is egy jó matekfeladat megoldása:
echo {1..1000} | grep -o 2 | wc -l
Találós kérdés: mi volt a feladat? :)
- A hozzászóláshoz be kell jelentkezni
Mennyi 2*150?
Szerk:
tudom, mire gondolsz (számolja meg, hányszor szerepel a kettes számjegy 0-tól 1000-ig), de utálom a "mi volt a kérdés" típusú feladványokat, mivel eléggé mondvacsináltak.
- A hozzászóláshoz be kell jelentkezni
ebből csak a seq és a shuf volt eléggé linux-only.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
A gseq-et simán ki lehet váltani az alaprendszerben meglevő jot-tal.
A gshuf-ot simán ki lehet váltani az alaprendszerben meglevő jot-tal.
Akkor minek telepítenénk fölöslegesen GNU-vackokat? De azzal együtt is, hogy tudok arról, hogy vannak ilyen BSD-specifikus eszközk, soha nem tanítanék senkit arra, hogy ilyeneket használjon. Főleg, ha a feladat könnyedén, és hordozhatóan megoldható azok nélkül.
- A hozzászóláshoz be kell jelentkezni
Nemigen vagyok otthon bsd-s témában, csak egy gyors gugli vezetett ezekhez.
- A hozzászóláshoz be kell jelentkezni
Csak "izles kerdes" jellegu kommenteim vanank (az 5 darab veletlenszam generalasra, mar fent elhangzott egy egysoros szep megoldas), ugyhogy barmelyiket figyelmen kivul lehet hagyni:
En jobban szeretem a [ valami -a valami ] helyett a [ valami ] && [ valami ] format. Ugyanazt csinalja, csak jobban olvashato, azok is megertik akik sose lattak bash-t.
A szamlalo=`expr $szamlalo + 1` helyett meg inkabb szamlalo=$[szamlalo+1], de meginkabb ne legyenek magyar valotzonevek. ;)
Amugy a backtick (`) helyett en mar teljesen atszoktam a $(...) formara, szinten jobban olvashato, raadasul konnyeden egymasba is agyazhato (mindeket forma egymasba agyazhato, csak nem mind konnyeden ;) ):
echo `echo \`echo \\\`echo alma\\\`\``
echo $(echo $(echo $(echo alma)))
A for ((i=1;i<$szamlalo;i++)) helyett kicsi "shell-esebb" megoldas a for i in $(seq $[szamlalo-1]) de ebben lehet, hogy csak okonzervativ vagyok.
Nem hasznalsz fuggvenyeket. Arra pl tobbszor is szukseged van, hogy eldontsd, hogy egy elem benne van-e egy sorozatban (egyszer, hogy ne tippeljenek ugyanarra, a vegen pedig, hogy kideruljon, hogy vannak-e talalatok), ezt ketszer leprogramoztad egy fuggveny helyett. De a fuggvenyek az olvashatosagot is segitik, nem csak a duplikaciotol mentenekmeg.
A kodot ide is bevaghattad volna [code] [/code] -ok koze, igaz syntax highlight nincs, de talan meg ugy is jobban latszana, mint ahogy most szetesett a pasetbin-en (legalabbis nagyon remelem, hogy nem ilyen az eredeti formazas).
- A hozzászóláshoz be kell jelentkezni
A $[ expr ] helyett könyörgöm $(( expr )). Azt legalább bash-on kívül kb a világ összes shellje megeszi.
Az eredeti for bashizm, a seq linuxizm, a korrekt módszer megtanulni a while ciklust, ami - abból kiindulva, hogy until már szerepel az eredeti kódban, nem fog nehezen menni. (És persze until-lal is ugyanúgy megoldható.)
A többivel úgy kb egyetértek.
- A hozzászóláshoz be kell jelentkezni
Az eredeti is ilyen volt, amíg code tagek között volt.
Annyit tennék hozzá még, hogy a magic konstansokat illene úgy megválasztani, hogy egyértelmű legyen honnan jönnek (pl. -lt 91 helyett -le 90), de még jobb ha ki vannak emelve változókba, és akkor lehet nevesítve hivatkozni rájuk.
- A hozzászóláshoz be kell jelentkezni
szamlalo=$[szamlalo+1]
let szamlalo++
en mar teljesen atszoktam a $(...) formara
a béna syntax hilighter-ek (pl. cooledit) miatt én még nem.
~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7
- A hozzászóláshoz be kell jelentkezni
Probalj meg /bin/bash shebanget. Nekem pl. a vimnel ez megoldotta a problemat.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
azt használok shebangnek.
vim syn hilighterével nem is szokott baj lenni,
cooledit pl már az elsõ ')' jelnél úgy gondolja, hogy vége a kimenet-helyettesítésnek és rendre felcserélõdnek az idézõjellel határolt szövegblokkok szinei.
(amit egy
# "
kommenttel szoktam workaroundolni)
~~~~~~~~
Linux 3.2.0-0.bpo.4-486
Debian 6.0.7
- A hozzászóláshoz be kell jelentkezni
Köszönöm a sok építőjellegű javaslatot!
Igyekszem hasznosítani őket!
- A hozzászóláshoz be kell jelentkezni