Igen.
Jester
Igen.
Jester
Érdekes, a múltkor még nagyon lelkiismeretes voltál
oper=$2
if [ ''$oper'' = ''x'' -o ''$oper'' = ''X'' ]
then
oper=''*''
fi
expr $1 ''$oper'' $3
Jester
most ZH-t írok és ez többet számít. 55ig írhatom, van 5 feladat.
ez lenne az a számológépes progi, amit az első pü-ben írtam?
[Szerkesztve]
elmennek a pü-k, vagy nincs net?
az egrep-es majdnem megy, csak nemtom hogy is vannak a végére illeszkedés jele.
közben felfogtam a számológépeset.
[Szerkesztve]
Figyi, ha még fel sem ismered, akkor nem nagyon jár neked az a zh ...
regexp: 0*[0-7]+o
MOD: ha a teljes sorra kell illeszkednie akkor ^ az elejére és $ a végére.
számjegyes:
s=0
for((i=0;i<${#1};i++))
do
s=$((s+${1:i:1}))
done
echo $s
[Szerkesztve]
Jester
a $ nem jutott eszembe hogy a végére az kell. thx.
az oper változó miből jött?
Hogyhogy miből jött? A neve? Abból, hogy operátor. Az értéke pedig a második paraméter.
Jester
így már értem. Csak én nem operátornak neveztem a műveleti jeleket.
Köszi szépen a segítséget. 5ből 4 jó lesz. Hála neked. Jövök egyel, vagy inkább már kettővel. Hol lax? 2 sörrel adósod vagyok.
Sziasztok! A segítségeteket kérném. Nagiosról ( Linuxos rendszer- és hálózatfelügyelő) hallotatok már? Van vkinek netalántán vmi anyaga róla? Nagyon fontos lenne, előre is köszönöm mindenkinek!
Jester01
47 pontos lett a 100-ból. 50 a minimum. Elég érdekesnek tűnik ez nekem, met akimeket írtál az mind jó szerintem is. Holnap megyek reklamálni. 4-ből 5 feladat szerintem jó lett. kb. 70 pontnak kellett volna lennie.
Jester
az az, kb. én is így reagáltam. Küldtem privátot!
Csak tanárokkal ne kezdjen az ember...
Én normális vagyok! Megmondták a hangok is a fejemben!
Hi!
Nemrég telepítettem fel az OpenBSD-t,és ha jól látom
itt ksh van meg sh.
Az lenne a kérdésem mi a különbség a shellek(bash,sh,ksh) között?
Ilettve van-e egyátalán lényeges különbség?
C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)
Fogmosás közben merült fel bennem a következő kérdés.
Feladat:
szeretném egy mp3 mappa alkönyvtárainak tartalmát konvertálni 64kbps-be (szöveges anyag, zene nuku, így ez is optimális az mp3 lejátszóhoz...)
Az lenne e jó, ha csak akkor kezdene dolgozni az átkódoló, ha az mp3 fájl rátája nagyobb, mint 64kbps, az ezzel megegyező vagy kisebb állományok maradnának változatlanul.
Namármost a kérdés az, hogy hogyan tudom ezt az infót az mp3 fájlból kinyerni úgy, hogy a kapott értéket változóként felhasználhassam a scriptben?
Lehet, hogy a lame vagy a bladeeenc vagy mpg321 vagy valami ki tudja írni, otthon majd keresgélek, csak gondoltam hátha tud valaki fejből ilyen opciót/kapcsolót, megoldást...
Én normális vagyok! Megmondták a hangok is a fejemben!
Pl. mp3info. De biztos van rá ezer más progi is.
Jester
Valaki?
Nemrég telepítettem fel az OpenBSD-t,és ha jól látom
itt ksh van meg sh.
Az lenne a kérdésem mi a különbség a shellek(bash,sh,ksh) között?
Ilettve van-e egyátalán lényeges különbség?
C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)
sh az alap. A ksh és a bash is felülről kompatibilis vele. A bash és a ksh normál használatban elvileg felcserélhető. Állítólag a bash a 88as ksh továbbfejlesztése (mármint tudásában), ugyanakkor a 93as ksh viszont további újításokat tartalmaz.
Természetesen semmi akadálya annak, hogy basht tegyél a bsdre, ha tulajdonképpen ez a kérdés.
Jester
Akkor tulajdonképpen mindegy,hogy melyiket használom?
Egy router gépen van az openbsd.
Köszi a válaszodat!
C64 6510 1MHz Proc, 64Kb Ram, C-1541-II Disk Drive, Tape Drive, Printer :)
Üdvözlet!
Nos, elkezdtem a #117-ben vázolt témát, (az mp3info valóban elő tudja csalogatni a bitrátát, köszönet érte!) de el is akadtam. A következő a helyzet:
...
for i in *.mp3;
do
bitrata=`mp3info -x $i | grep ''Audio'' | cut -c14-15`
echo ''A bitrata: $bitrata''
if (''$bitrata'' > ''64'');
then echo ''Kodolok!''
else echo ''Nem kodolok!''
fi
...
A gondom az, hogy nem tudtam rájönni, hogy az if részben az értékek összehasonlítása (és az ennek megfelelő elágazás) korrektül megtörténjen. Szerintem valami szintaktikai probléma lesz...
(A $bitrata-t kiiratva korektül megjelenik pl. a 64)
Hálás lennék, ha valaki megokosítana
[Szerkesztve]
Én normális vagyok! Megmondták a hangok is a fejemben!
Hello!
1x láttam egy xp-t futó shell konzolt, nem tudjátok honnan lehetne letölteni?
-{PoH}- Patriots of Hungary
cygwin. [link]
remélem erre gondoltál. jó kis cucc, akár X-et is tud.
Azóta már biztos megokosítottak, de a biztonság kedvéért elárulom, hogy dupla zárójel kell. if (( $bitrata > 64 )) ...
Jester
ngabor2 say:
''2x van benne echo $i, az írja ki.'
[link] itt hátha részletesebben tudnak segíteni. (ez baráti jótanács, nem moderátori. ideje lenne azt a topikot is felrázni egy kicsit. )''
#! /bin/sh
for i in `seq 10`
do
echo $i
done
i=1
while [ $i -le 10 ]
do
echo $i
i=`expr $i + 1`
done | tee szamok.txt
exit 0
ha az első echo $i-t szedem ki, elhal, ha a másodikat, akkor nem ír bele a txt-be, ha mindkettő marad, akkor kétszer írja a képernyőre..
[Szerkesztve]
Az elsonel nem csak az echot kell kiszedni, hanem az egesz for ciklust, mert az sh-nal nem lehet ures a ciklusmag.
DRM is theft
jajmá, milyen vacak könyvet vettem én? ehhh
akkor, hogy is néz ki a jó megoldás?
ez a példa a könyv szerint a ''ciklusok működésének bemutatására íródott''
szép kis bemutatás
[Szerkesztve]
Most mi a baj? Tenyleg be is mutatja oket rendesen, van egy for ciklus meg egy while.
A hiba attol volt, hogy belenyultal (nem megfelelo reszt kommenteztel ki).
DRM is theft
perpill semmi nincs kikommentezve..dettó könyv copy, minden jó, csak az a alap baj hogy kétszer írja ki 1-10ig a képernyőre..
Es az miert baj, hogy ketszer irja ki? Ket kulonbozo ciklus van a peldaban arra, hogy egytol tizig kiirja a szamokat, persze, hogy ketszer irja ki.
DRM is theft
igen, még az éjszaka rájöttem, én vagyok a ''láma'' alias gyakorlatlan..
ha egyszer akarom kiíratni, az egyik ciklust kiiktatom, a másik működik, továbbá bármelyik a done és tee-vel ki is írja file-be, köszi..
szóval ez a két ciklus saját formátumában, ugyan azt a feladatot képes ellátni
következő lecke...next mission majd még hallotok rólam..
[Szerkesztve]
Hát, a feladat nem nehéz, azaz első ránézésre megoldható.
Viszont halál unalmas.
Esetleg írj hozzá valami algoritmust, aztán majd átültetjük bash-ra.
[link]
Különösen a tömbökkel foglalkozó részt olvasgasd.
Jut eszembe, van valami megszorítás a használható parancsokra vonatkozóan?
Bash shell jó lesz?
Ha az elsőt meg tudod csinálni, akkor a másodikat érdemes az első kimenetéből
legyártani a convert segítségével.
Azaz a 2. feladat az eléggé egyszerű lesz, pár sorra tippelem a hosszát.
Figyu, én komolyan gondoltam, hogy írj hozzá algoritmust.
Tényleg nincs kedvem tornáztatni ezzel az agyamat, van elég elgondolkodtató saját feladatom...
lehet, hogy ez egy hülye kérdés lesz
az a leírás nem valami algoritmus szerűség?
What else you gonna do on a Saturday?
Azt hiszem, az elvárások tényleg egy kicsit magasak.
Figyu, te bölcsész vagy az eltén? De akkor minek a unix?
a, minden algoritmus, ami nem maga kód és a feladattal foglalkozik.
b, de nyilván én egy kissé kódhoz-közelebbi-algoritmusra gondoltam
c, semmi kedvem elolvasni azt a rengeteg szöveget ami a feladathoz tartozik
d, olvasd el Te, írd meg az algoritmust, majd a részeinek bash-ba kódolásában segítek
Ha pedig kész megoldást akarsz, mondd azt és ne kertelj.
(#140) loszerafin válasza loszerafin (#139) üzenetére
Jajj, bocsi, elsőéves vagy, azaz most kezdted.
Én vmiért azt gondoltam, hogy már egy évet lehúztál.
Ebben az esetben teljesen kezdő vagy?
Akkor viszont ez túl mély víz. Még algoritmust se tudsz írni? Akkor minek ilyen feladat?
De hát volt felvételi, nem? Vagy az nem programozásból volt?
Na, szóval:
Próbáld meg leírni magadnak, hogy oldanád meg a feladatot, ha Te volnál a számítógép.
Több lépésben:
1. fogalmazd meg a feladatot, saját magadnak érthetően.
2. Próbáld megoldani a feladatot papíron, azaz tervezz magadnak különböző inputokat, és
rajzold meg hozzá a kimenetet.
3. Próbáld egyre ''gépiesebben'' megoldani, azaz egyre kevésbé használd az eszed a megoldáskor. Az intuíciódat teljesen kapcsold ki. Kb. egy 1,5-3 éves gyerek szintjére ''süllyedj'' le, aki mindent szó szerint vesz és csak a szájába rágott dolgokat tudja megcsinálni, azokból is max. 1-2 lépést tud egyszerre megjegyezni.
4. Egyre jobban támaszkodj ismétlődő, egyszerű lépésekre. Ezeket az egszerű lépéseket nevezd el találóan (=rövid, de velős név)
5. A látásodat szűkítsd le egyetlen sakk-mezőre és a szemed vezéreld a táblán parancsokkal.
6. Játszd el, hogy sakk-robot vagy, akinek egyetlen feladata a táblára tenni a figurákat, a betáplált állásnak megfelelően.
7. A memóriád szűkítsd le néhány rekeszre, ezekbe egyszerű dolgokat tehetsz, de ezután csak a betett dolgokra emlékezhetsz.
Írd ide a végső megoldási lépéseidet.
(#141) loszerafin válasza loszerafin (#140) üzenetére
Még egy kis info:
Van egy módszer, felülről-lefelé-nek hívják:
0.
Az inputnak megfelelően kiírom a bábukat tartalmazó sakktáblát.
1.
a,Beolvasom az inputot
b,Kiszámolom az eredményt
c,Kiírom az eredményt
2.
a1,Beolvasom a sorokat
a2,Szétbontom a sorokat
a3,Ellenőrzöm a részeket
b1,Szétbontom a részeket bábú-oszlop-sor részekre
b2,Ráteszem az elképzelt sakktáblámra a bábukat
c, Kiírom a sakktáblámat
De lehetne alulról-felfelé is építkezni:
Ahhoz, hogy kiírjam egy sakktábla képét, előszőr tárolnom kell.
Legyen , pl. egy mátrixom: TABLA[s,o] értéke legyenn a s. sor és o.adik oszlopban levő figura neve.
Kell nekem egy Táblára parancs, ami betesz egy figurát a táblára, meg egy Kiír parancs, ami kiírja a táblát. Meg kellene egy Beolv parancs, ami beolvas egyetlen bábuállást.
Persze kellene egy Sorbeolv, ami beolvas egy sornyi bábuállást. Ez nem állna másból, mint pár Beolv-ból.
Akkor jó lenne egy KétsorBeolv, ami két Sorbeolv lenne.
stb....
És még van sok egyéb.
Hogy melyiket választod, édesmindegy, csak az eredmény legyen jó.
A JÓ nem csak azt jelenti, hogy működik. Fontos szempontok
(KISS)
a, egyszerűség
b, részekre legyen bontva, a részek egyetlen egy dolgot csináljanak, de azt jól
c, legyen dokumentált
d, hibás inputra se szálljon el
e, Kerüld el a kerék felfedezését, használj már meglévő parancsokat
Sajnos, azt kell mondjam, a shell programozás abban némiképp eltér a hagyományos programozástól, hogy az ember itt próbálkozik. Pár meglévő parancs összekapcsolásával írják a scripteket, majd egyre bonyolítják, egy szint után pedig önálló részekre szedik.
De ehhez bizony ismerni kell a parancsokat és a gyakori kapcsolóikat.
igen, első félévem az iskolában és kb 0ról kezdtem a Linuxot, ezt nem írtam.
ahogy hazaértem átnézem azokat amiket írtál
az a gondom, hogy ilyen mátrixszerűségekről még szó sem volt, de a beadandóban kérik
és most 3 hétig nem is lesz EA, mert okt 23 aztán szünet, utána meg már be kell adni a dolgot
mégegyszer köszi, hogy segítesz, ha tudom majd meghálálom
[Szerkesztve]
What else you gonna do on a Saturday?
Írtam egy kis awk scriptet:
BEGIN {
for (r=1; r<=8; r++){
for (c=1; c<=8; c++) {
if ((r+c) % 2 == 0) TABLA[r,c]='' ''; else TABLA[r,c]=''*''
}
}
}
TABLA[$3,$2]=$1;
END {
for (r=1; r<=8; r++){
printf ''|'';
for (c=1; c<=8; c++) {
printf TABLA[r,c]
}
print ''|'';
}
}
Ennek egy ilyen input fájl kell:
B 1 1
H 2 1
F 3 1
B 8 1
F 4 3
f 4 4
g 3 5
g 7 5
g 4 7
Az első karakter a sakkbábu, nagybetűvel a fekete, kicsivel a fehér. Gyalogot is jelölni kell!
A második oszlop az oszlop sorszáma, harmadik a sor.
És ez az eredménye:
|BHF* * B|
|* * * * |
| * F * *|
|* *f* * |
| *g* *g*|
|* * * * |
| * g * *|
|* * * * |
(#144) loszerafin válasza loszerafin (#143) üzenetére
Indítás:
awk -f sakk.awk myinput
Írj köré bash programot, ami
1. Ellenőrzi az inputot
2. Átalakítja úgy, hogy jó legyen ennek az awk scriptnek
(#145) loszerafin válasza loszerafin (#144) üzenetére
Még annyit, hogy mire be kell adni, a google már indexeli ezt a fórumot, a tanár meg könnyedén rá fog találni a linkedre.
a hozzászólást lehet töröltetni
egyébként nagyon szépen köszönöm! ilyesmi információra lett volna szükségem, hogy legyen valami, amin elindulhatok. remélem azért még gyakon is kapunk valami használható parancsokat. tényleg nagyon sokat segítettél
a hsz-okat elmentettem, ha lesz még valami gondom, akkor priviben megkereslek, ha nem gond.
[Szerkesztve]
What else you gonna do on a Saturday?
Ahhoz, hogy a feladat inputjából ennek az awk scriptnek az inputját előállítsd, a következők kellenek (persze, lehet mással is):
sed
tr
regexp-ekről a legjobb leírás: man grep
És az alapmű:
advanced bash scripting guide
Ugyanez bash shell script formájában:
for ((r=1; r<=8; r++))
do
for ((c=1; c<=8; c++))
do
if [[ $(( (r+c) % 2 )) == 0 ]]
then
TABLA[$((r * 8 + c))]='' ''
else
TABLA[$((r * 8 + c))]=''*''
fi
done
done
while read f c r
do
TABLA[$((r * 8 + c))]=''$f''
done
for ((r=1; r<=8; r++))
do
echo -n ''|''
for ((c=1; c<=8; c++))
do
echo -n ''${TABLA[r * 8 + c]}''
done
echo ''|''
done
Azt hiszem magától értetõdõ, leszámítva, hogy kevésbé olvasható.
Annyit fûznék még hozzá, hogy bash-ban nincs 2 dimenziós tömb (illetve asszociatív - az awk-ban ez van) ezért ki kellett lapítani egy dimenziósra a sakktáblát.
Jester
Sziasztok!
Shellben egy stringnek, mind1, hoyg paraméter az vagy egy file sorainak stb akárminek a tartalma. De hogy tudok elemenként hivatkozni rá?
mint pl C-ben?
string tmp = ''valami'';
tmp[ 1 ];
gyanítom hogy itt is van erre valami megoldás, de mi?
Másik kérdésem, sed ben tübb parancsot is össze lehet fűzni. de nekem csak pipeokon keresztűl sikerült, de gondolom ennél van szebb megoldása is mint :
sed ''s/e'/é/g'' | sed ''s/a'/á/g'' | sed ''s/i'/í/g'' | sed ''s/o'/ó/g'' | sed ''s/o:/ö/g'' | sed ''s/o\''/ő/g'' | .. stb
próbáltam őssze kötni a parancsokat, mármint hogy ''s/\(e'\)*(a'\)/\1\2/''
de nem akar össze jönni nekem.. nem is nagyon értem még ezt a sed et..
ha tud valaki segíteni azt megköszönném
amargo
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”