először is szeretnék elnézést kérni..
egyhogy külön topicot nyitottam, azért mert nem olvastam el a többi topicot.
Sajnos nincs rá sok időm. Szeretném leszögezni, hogy nagyon-nagyon kezdő vagyok, és elkélne egy kis help.
A félév kezdete óta 5 gyakorlati óránk volt bevprogból, tudni kell, hogy alapvető linuxparancsokkal kezdtünk, szal aki valami egyszerűbb szuperscriptet akar rámtukmálni, az lehetőleg ne tegye, mert nem fogom érteni. Ja igen, és tudom, hogy elavult :)
ez lenne a feladat:
Írj UNIX parancsfájlt potlas néven, ami kiírja egymás alá az első két paraméterét, úgy hogy a rövidebbet annyi * karakterrel pótolja ki, amennyivel a másik szöveg hosszabb. Az mindegy, hogy melyik paramétert írja ki előbb. Példa futtatások:
./potlas dio citrom
dio***
citrom
./potlas "dio narancs" citrom
dio narancs
citrom*****
ennyit sikerült csinalnom eddig (nem röhögni :)
http://web.axelero.hu/lalika14/gecc.jpg
Valaki mondja már el, hogy hol szar. Mindenhol vagy csak egy-két helyen?
köszi előre is
- 1673 megtekintés
Hozzászólások
Ezt most hogy próbáltad?
Egyáltalán, kipróbáltál belőle akár 1 sort is, hogy működik-e???
1. értékadásnál nincs space a = körül
2. mi az a x = -n ??? talán inkább x=`echo $1 | wc -c`
3. a $x visszaadja az x értékét; tehát $3=z-nek nincs értelme! Használj tetsz. változó nevet - pl. a=`expr $y '-' $x`
- A hozzászóláshoz be kell jelentkezni
Ez itt sajna tobb sebtol verzik...
2-4 sor: ez itt garantaltan hibas. Mit is szeretnel csinalni a parametereiddel? :)
6-7: szintaktikai es logikai hibak. Szvsz a parameterek megletet kulon kellene ellenorizni es pl szolni a usernek hogy neked min 2 db -ra van szukseged. a -n az a test(1) vagy [(1) parametere, csak [ ] blokkban mukodik. a test program mukodeserol es parametereirol
man test ad bovebb es reszletes informaciot. A wc egy kulso program, ugyanugy mint az expr. Ugyanugy is kell hivni ;). Valamint a wc a paremtereit filekent kezeli es megprobal beloluk olvasni.
9-10: A $ valtozok a parancssori parameterek valtozoi ne tessek hasznalni oket. A $valtozo=ertek kifejezes hibas. A masodik parameter-tnem kell ' koze tenni.
if sorok: man test, az osszes hibas.
Sajna en nem ismerek mas modot, nx* kiiratasara, minthogy egy ciklusban (pl while) a hosszok kulonbsegenek mennyiseguszor vagy kiiratod az egy drab csillagot echo -n -el, vagy osszefuzod egy stringbe es a vegen azt iratod ki.
Amit tanacsos elolvasni: man test es a man bash-t.
- A hozzászóláshoz be kell jelentkezni
talan bejartal volna progkorre meg gyakra
akkor nem itt szivnal
- A hozzászóláshoz be kell jelentkezni
Tök igazad van, de elnézés kéréssel kezdte. Földön fekvőbe meg ne rúgjunk, nem rendőrök vagyunk!
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Maga a program itt van, csak azt nem tudtam megoldani, hogy egy sorba irja ki a csillagokat, de ezt majd a tolem okosabbak megmondjak hogyan kell. ;)
#!/bin/bash
hossz1=`echo $1 | wc -c`
hossz2=`echo $2 | wc -c`
if [ $hossz1 -lt $hossz2 ]
then
s=`expr $hossz2 - $hossz1`
echo $1
while [ $s -gt 0 ]
do
echo '*'
s=`expr $s - 1`
done
echo $2
elif [ $hossz1 -gt $hossz2 ]
then
s=`expr $hossz1 - $hossz2`
echo $1
echo $2
while [ $s -gt 0 ]
do
echo '*'
s=`expr $s - 1`
done
else
echo $1
echo $2
fi
- A hozzászóláshoz be kell jelentkezni
man echo
amugy echo -n ;)
- A hozzászóláshoz be kell jelentkezni
thx
Sajna nemtom szerkeszteni az előzőt, de ez alapján már remélem menni fog!
- A hozzászóláshoz be kell jelentkezni
ezzel csak az a baj hogy majd jol beadja, aztan meghuzzak..
inkabb jart volna orara, vagy google. amugy bevprogon
nem tanitanak linux parancsokat, max progkoron.
- A hozzászóláshoz be kell jelentkezni
darwin dolgozik ?
- A hozzászóláshoz be kell jelentkezni
sajna mar meghalt, pedig segithetne rajtad is
- A hozzászóláshoz be kell jelentkezni
Hat igen, nincs olyan szerencsetek. ;)
- A hozzászóláshoz be kell jelentkezni
Légy erős! Tanítanak!
És az, hogy nem ő csinálja meg, nem egyedülálló a felsőoktatásban. Mondhatni bevett szokás. Persze nem mondom, hogy ez így van jól, de majd beletanul, ha érdekli.
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
hat ez a baj.
ezert tart ott a felsooktatas ahol tart.
- A hozzászóláshoz be kell jelentkezni
részben valóban ezért, de hát mit is várunk a felsőoktatástól? Max. annyit, hogy öt évig szivatják a népet és aki kibírja, az diplomás lehet. Olyan ez, mint a sorkatonaságban a kopasz időszak volt.
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Jólvan. De nekem nem segített senki, amikor én kértem itt házifeladat segítséget, sőt csak egy nagy letolást kaptam. Ami nem esett jól, sőt kifejezetten rosszul esett ( http://hup.hu/node/19717 ). Szerintem ő is szívesebben foglalkozik így a témával, mintha annyi a válaszunk, hogy ott a google, vagy miért nem jártál órára, előbb kellett volna gondolkodni bla bla
- A hozzászóláshoz be kell jelentkezni
pedig ez az igazsag.
- A hozzászóláshoz be kell jelentkezni
A UNIX-hoz (Linux-hoz) egyfajta szemlélet kell. Ha ez nincs meg, semmire se fog menni guglival és man-nal.
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Azert azt vedd eszre, hogy shell scripthez tobb nagysagrenddel tobben ertenek/konyitanak, mint ANSI C-hez.
- A hozzászóláshoz be kell jelentkezni
Észrevettem ;)
Ott nem is volt ennyi válasz. Az két hozzászóló hozzászólását meg inkább hagyjuk.
- A hozzászóláshoz be kell jelentkezni
Pedig itt van elég gógyi a megoldáshoz, de mint tudjuk, a szabad szoftveres világban mindenki saját szabadidejében segít és ezért kár lenne bármit is elvárni, mert ugye nem mindig ér rá mindenki :)
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
hát igen...
lényeg az, hogy ez is meg az is megoldódott :)
- A hozzászóláshoz be kell jelentkezni
Bejárok gyakorlatra, meg előadásokra is. 5 volt belőle, szerinted azalatt meddig jutottunk el? Arról nem is szólva, hogy gyakorlaton egy halál egyszerű példától eltekintve, semmit nem tanítanak. Plussz estire járok. Munka mellett nehéz. Azt mar nem is mondom, hogy semmi linuxos/programozó múltam sincs, szal csak óvatosan ezekkel "be kellett volna járni az órákra" a kijelentésekkel, ha egy mód van rá.
Amúgy aki pontosan tudja, hogy hogyan kell, az nagyjaból le is írhatná, hogy mi micsoda pontosan. Úgy talán tanulnék is belőle. előre is kösz
- A hozzászóláshoz be kell jelentkezni
Fjejj! itt van ascript a gépemen. elküldöm és adok hozzá némi kommentet is, nyugi!
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
egy társad ugyanezt a házifeladatot kérte tőlem bent melóhelyen, hogy csináljam meg neki.
Ha kell, keress meg magánban ismi@freemail.hu és elküldöm a scriptet Volt még egy, amit szintén be kell majd adni, az arról szól hogy egy könyvtárban vannak szöveges fájlok és azok tartalmát kellett egy közös fájlba íratni. Az alkönyvtárakra ne adjon hibaüzenetet. Asszem. Ismerős a feladat? Vagy még nem adták ki ezt HF-nek? :)
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Szerintem ilyen megoldassal senki nem rukkol elo, garantalt a bukas, ha ezt adod be, de a feladatot persze teljesiti. :-)
#!/bin/bash
if [ ${#1} -gt ${#2} ]; then
diffs=`expr ${#1} - ${#2}`
rovidebb=$2
hosszabb=$1
else
diffs=`expr ${#2} - ${#1}`
rovidebb=$1
hosszabb=$2
fi
for i in `seq 1 $diffs`; do rovidebb+="*"; done
echo -e "${rovidebb}\n${hosszabb}"
- A hozzászóláshoz be kell jelentkezni
Tovabbi bonyolitaskent az expr sorokat ki lehet cserelni $(()) -re is ;)
- A hozzászóláshoz be kell jelentkezni
Sőt, az echo $ | wc -c helyett ez is jó:
echo ${#}
:)
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Hol irtam wc -c-t? :)
- A hozzászóláshoz be kell jelentkezni
szvsz az pont nem. hacsak nem vagy betegesen kivancsi a valtozo tartalmanak a hosszara :)
- A hozzászóláshoz be kell jelentkezni
Pedig kiváncsi rá :)
Láttam az órai jegyzetet. Azt magyarázta az oktató :)
Gondolom ezt is várja a házi feladatban :)
Nem szabad a saját kútfőd alapján HF-et írni, mert beleraksz awk-t úgy, hogy pölö azt még nem is tanulták :)
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Szrinted LiRul szkriptjeben szereplo advancedebb shell megoldasokat tanultak ?;)
- A hozzászóláshoz be kell jelentkezni
sort, uniq, ls, grep, echo if-then-else, for-do-done, wc biztos volt.
Én úgy raktam össze a scriptet, hogy néztem a jegyzetet és megpróbáltam kitalálni, hogy mit várhat el a góré.
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
Absolute igazad van, -2 fork! ;)
- A hozzászóláshoz be kell jelentkezni
átküttem az emesenes emilcímedre. Ha nem kaptad meg, sikíts :)
--
unix -- több, mint kód. filozófia.
- A hozzászóláshoz be kell jelentkezni
biztos' bash-ben kell?
- A hozzászóláshoz be kell jelentkezni
Hát úgykezdte...:
http://web.axelero.hu/lalika14/gecc.jpg
- A hozzászóláshoz be kell jelentkezni
akkor jo. nehogy az miatt legyen bukta
- A hozzászóláshoz be kell jelentkezni
az előadó is olvassa a fórumokat, úgy tudom..
- A hozzászóláshoz be kell jelentkezni
ez a ciki :P
--
Peace, Love, Unity, Respect
- A hozzászóláshoz be kell jelentkezni
Csak hogy én se maradjak ki a script kiddie játékból... :)
Feltétel (if) és mindenféle sallang nélküli megoldásom, amely ráadásul működik bash, csh, ksh és zsh-val is:
#!/bin/sh
r=$1; while [ ${#r} -lt ${#2} ]; do r=$r*; done; echo $r
r=$2; while [ ${#1} -gt ${#r} ]; do r=$r*; done; echo $r
;-)
- A hozzászóláshoz be kell jelentkezni
Hat ha a szepseget nezzuk, akkor ez a tuti ;-)
Ja egy kis hint: itt, Szegeden is van az infos padawanoknak linux gyorstalpalo progalapjai kereteben, de tavasszal az oprendszerek cimu targy kereten belul jobban ala merulnek: grep, sed, awk, etc. ;-)
- A hozzászóláshoz be kell jelentkezni