Hirdetés

2012. május 27., vasárnap

Hozzászólások

(#1051) CPT.Pirk válasza bambano (#1050) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Volt egy kis fennakadás a Xilinxesek miatt, így nem tudtam tesztelni eddig.

Beírtam, így kétszer olvas be 41 számpárt, a második beolvasás során számol és ír fájlba. Ennek nem jöttem rá az okára, hogy miért nem megy egy kör alatt.

BEGIN { printf ("\x11") > /dev/ttyUSB0; }
NR<41 { a[NR]=substr($0,1,4); b[NR]=substr($0,5,4); }
NR>41 { exit 0; }
END{
for(i=1;i<41;i++) if(a[i] > 0) printf ("%4.3f\n",20*(log(b[i]/a[i])/log(10.0))) > "/home/patch/awk/output.txt";
}

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1052) bambano válasza CPT.Pirk (#1051) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

szerintem nem olvas be kétszer és azért jobb szétbontani, mert a logaritmus számítás awk-ban nem biztos, hogy elég gyors.

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1053) CPT.Pirk válasza bambano (#1052) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Ha a NR<41 { a[NR]=substr($0,1,4); b[NR]=substr($0,5,4); } sor végén ott van a printf("%d\n",NR ), akkor először kiírja az NR értékeit, majd megint elkezd adni a modulom és akkor lép ki a scriptből, mikor a for ciklus is lement, ismét 41 lépéssel.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1054) bambano válasza CPT.Pirk (#1053) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

ezt nem teljesen értem, pastebin?

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1055) CPT.Pirk válasza bambano (#1054) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Eredeti formájában az exit 0-s módosítással ez volt a helyzet: [link]

Csináltam egy strace-t is az alább postolt kóddal: [link]

[ Szerkesztve ]

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1056) bambano válasza CPT.Pirk (#1055) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

nem látok problémát...
beolvas 40 stringet, átrakja két tömbe, majd lezárja a bemeneti állományt.
utána a tömbökből logaritmust számol, de akkor már nem nyúl a soros porthoz.

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1057) CPT.Pirk válasza bambano (#1056) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Azt hiszem, igazad van. No most majd elszórakozok a gnuplottal.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1058) lapa


lapa
(PH! kedvence)

üdv. erről a gépről szeretném megüzenni a távoli gépnek, hogy legyen kedves mountolni. ez ilyen ubuntu sudo-s módszer ugye. eddig jutottam:

ssh lapa@tavoli 'sudo mount /dev/sdb1 /media/sdb1'

ez persze nem megy. szóval parasztosan az a kérdésem, hogy hogyan hozom át a jelszó bekérését. ha át lehet. ilyen sudoers varázsokat hagynám inkább. köszi.

www.lapanet.hu

(#1059) lapa válasza lapa (#1058) üzenetére


lapa
(PH! kedvence)

ssh -t lapa@tavoli 'sudo mount /dev/sdb1 /media/hdd/' műx, bocs.

www.lapanet.hu

(#1060) lapa válasza lapa (#1059) üzenetére


lapa
(PH! kedvence)

na feladom: szóval én mindenáron azt szeretném megoldani, hogy erről a gépről át tudjak rsyncelni valamit a távoli gépre. mindezt úgy, hogy mindkét (ubuntu) gépen sudo vagyok.

ezt szeretném:

1. elindítom a scriptet
2. ssh távoli gép jelszót kér
3. távoli sudo jelszót kér és mountol egy partíciót (eddig asszem megvagyok).

4.

sudo rsync -a -v -z -e ssh --rsync-path='sudo rsync' \
--delete \
--exclude=/var/lib/video \
--exclude=/dev \
--exclude=/tmp \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/media \
--exclude=/mnt \
--exclude=/sys / lapa@ii:/media/sdb1/

5. távoli umount (ez is megvan)

a bajom a 4. ponttal van, mindenáron sudo: no tty present and no askpass program specified -et kapok.

volt egy olyan ugly workaround, hogy előtte

stty -echo; ssh myUser@REMOTE_SERVER "sudo -v"; stty echo

de ahhoz ki kéne kapcsolni a sudo per-tty ticketjét, és ha jól értem azt nem akarom szekurity részirűl.

volt ugyanitt valami ilyen megoldási javaslat, de ezt még emésztem. azt írják ebben látszik a jelszó, szóval nem tűnik nyerőnek:

rsync -R -avz -e ssh --rsync-path="echo mypassword | sudo -S mkdir -p /remote/lovely/folder && sudo rsync" /home/ubuntu/my/lovely/folder ubuntu@x.x.x.x:/remote/lovely/folder --delete

valahogy csak meg lehet ezt oldani, és szerintem elég fontos lenne. általában nagyon lényeges lenne a távoli sudo-s rsync.

www.lapanet.hu

(#1061) bambano válasza lapa (#1060) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

jelszót normális szoftverek nem az stdin-ről veszik, hanem a /dev/tty-ról, úgyhogy azt nem lehet echo-val betolni.

ez egy normális linuxon úgy működik, hogy átrakod az ssh kulcsodat és sima rsync. ha biztonsági gondjaid lennének, akkor a kényesebb gépről menj ki a kevésbé kényes gépre.

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1062) lapa válasza bambano (#1061) üzenetére


lapa
(PH! kedvence)

értem, de én nem akarok kulcsokat. vagy máshogy mondva van már kulcs, csak pint kér(ne) jelszó helyett.

www.lapanet.hu

(#1063) bambano válasza CPT.Pirk (#1057) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

kis olvasnivaló linuxon soros port kezelés

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1064) CPT.Pirk válasza bambano (#1063) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Köszönöm!

Most egyébként rendeltem rendes quartz oszcillátorokat, mert végre megtaláltam a leírásban, hogy egy "szilícium oszcillátor" van gyárilag a nyákon, ami egyrészt nem elég pontos a freki tartásban, másrészt +-0,5% freki hibája van, ami 50MHz-en elég cinkes. (szerintem még több is van neki, mert 47.8MHz körül szokott menni)

Csütörtök - péntek körül meglesz az új quartz, addig tökéletesítgetem a mostani cucost. Nem tudtam foglalkozni vele és ma se érzem valami frankón magam ehhez (hülye frontok), így még nincs gnuplot rajzom, de már nagyon szeretném. ;]

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1065) CPT.Pirk


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Lehet olyat csinálni a printf-el, hogy a szövegen belül idézőjel is legyen? A gnuplot paramétereket szeretném fájlba írni, ahol ilyen sorok vannak:

set valami...
set ylabel "amplitudo"
set valami...

\n, meg ilyenek megvannak, csak az idézőjellel nem tudom mit kezdjek.

awk '{print "set valami\nset ylabel "amplitudo"\nset valami"}' > /home/patch/awk/plotfile
Ha awk-s printet hívom meg, az nem ad hibát, de megakasztja az egész fájlt.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1066) bambano válasza CPT.Pirk (#1065) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

persze, ahogy ctrl+q-t ki tudtál írni a \x11-gyel, idézőjelet meg aposztrófot is ki lehet írni \x22 meg \x27 a kódjuk, ha nem csalnak az emlékeim.

illetve az eredeti unix filozófia szerint escape-lni kell és akkor jó lesz, tehát ha idézőjelen belül idézőjelet akarsz, akkor \" -t kell írni.

[ Szerkesztve ]

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1067) CPT.Pirk válasza bambano (#1066) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Köszönöm, mindkét megoldás működik! - lottószámokra nincs tipped? ;]

Amúgy most végre megvan a gnuplot is felparaméterezve, szépen kirajzolja, amit kell. Végül egy bash scriptbe foglaltam bele mindent, a fájl műveleteket, az awk-s programot, meg a gnuplotot.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1068) bambano válasza CPT.Pirk (#1067) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

lottószámoknak nincs man lapja :)

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1069) lapa


lapa
(PH! kedvence)

olyat szeretnék, hogy indításkor minden, 10mb-nál nagyobb fájlt ürítsen ki a /var/log/ -ban.

olyat találtam, hogy find -size +10000 | xargs rm

de gondolom az rm + touch kombónál egyszerűbb lenne valami >

www.lapanet.hu

(#1070) Jester01 válasza lapa (#1069) üzenetére


Jester01
(PH! addikt)

A touch nem tudom hogy jön ide, de az amit másoltál pont a jó megoldás erre.

MOD: ja amúgy a find tud törölni, tehát annyi is elég, hogy find /var/log -size +10000 -delete

[ Szerkesztve ]

Jester

(#1071) lapa válasza Jester01 (#1070) üzenetére


lapa
(PH! kedvence)

arra gondoltam, hogy újra kéne csinálni törlés után és innentől az 2 parancs lenne. vagy nem kell? megcsinálja magának?

[ Szerkesztve ]

www.lapanet.hu

(#1072) Jester01 válasza lapa (#1071) üzenetére


Jester01
(PH! addikt)

Jahogy üresen akarod ... erre van program, úgy hívják, logrotate

MOD: vagy ha ragaszkodsz a find-hoz, akkor a truncate lesz a barátod, valahogy így: find /var/log -size +10000 -exec truncate -s 0 {} +

[ Szerkesztve ]

Jester

(#1073) lapa válasza Jester01 (#1072) üzenetére


lapa
(PH! kedvence)

ez jó ez a logrotate, csak éppen valami olyasmi jelenséggel küzdök, ami ritkán de kegyetlenül belehány sokszáz mega felesleges sort akármiről is (valami dvb driver issue, de nem fogom tudni megoldani most). szóval nem kell ez nekem, csak annyit szeretnék mint minimum, hogy ne dönthesse be a gépet ha valamiért úgy van hagyva (azaz legrosszabb esetben restart rc.local megoldja ezzel a masszív pucolósdival).

egyébként a parancs perfekt, köszönöm.

www.lapanet.hu

(#1074) Jester01 válasza lapa (#1073) üzenetére


Jester01
(PH! addikt)

A logrotate-ben lehet mérethatárt is állítani.

Jester

(#1075) lapa válasza Jester01 (#1074) üzenetére


lapa
(PH! kedvence)

azt így hirtelen nem láttam, de akkor majd valamikor upgradelek. köszi.

www.lapanet.hu

(#1076) CPT.Pirk válasza bambano (#1068) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Hoppá hoppá, meglett az "od" parancs "elcsúszásának" az oka.
Mióta ma betettem a 120MHz-es quartz oszcillátort és azt használom a +- 0.5% frekvencia erroros szilícium oszcillátor helyett, egyszer sem tévesztett az od és az sem fordult elő, hogy a kiküldött x11 helyett mást látott volna az fpga, korábban ez is gyakori volt.

Szerencsére még pluszban a 120MHz az egész számú többszöröse a 115200-nak, így kerekítési hiba sincs.

740Ft volt ez a 120-as quartz, francnak nem vettem meg korábban. :N
-hamarosan remélem lesz egy videó róla, hogy végül is mit tud a rendszer.

[ Szerkesztve ]

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1077) bambano válasza CPT.Pirk (#1076) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

:R

szerk: 120000000/115200 = 1041.66666
kerek szám, az tény, de nem egész :)

[ Szerkesztve ]

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1078) bambano válasza CPT.Pirk (#1076) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

viszont a 38400-nak tényleg egész számú többszöröse és még az is elég gyors lehet neked.

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1079) CPT.Pirk válasza bambano (#1078) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Köszönöm!
Tudod miért számoltam el? Mert a Windows7 számológépe programozó módban volt, így nem mutatta a tizedeseket. :DDD

Amúgy ez a pici eltérés, a 115273,77521613832853025936599424 Hz úgy tapasztaltam, még benne van az uart tűrésében. Majd holnap / (ma) átdolgozom a 38400 baudra a kódot.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1080) drogery


drogery
(lelkes újonc)

Hali,
egy beadandó feladatot kellene készítenem. Ezek közül 1et.

1. Irjon C nyelvu programot, ami:
letrehoz ket gyermekprocesszt
ezek a gyermekprocesszek letrehoznak 3-3 tovabbi gyereket
ezek az unokak varakoznak nehany

masodpercet es szunjenek meg
a szulok varjak meg a gyerekek befejezodeset es csak utana szunjenek meg

2. Irjon C nyelvu programokat, ami
SIGUSR1 signal erkeztekor noveli egy valtozo erteket
SIGUSR2 signal hatasara pedig kiirja a kepernyore az aktualis erteket.
a

masik program pedig: futtataskor signal-t kuld az adott processznek

3. Irjon C nyelvu programokat, ami
letrehoz egy uzenetsort
ebbe az uzenetsorba betesz egy masodpercenkent egy valtozot
ennek a valtozonak a kezdoerteke legyen az

aktualis processz azonositoja
a valtozo mindig beiras utan novekedjen 2-vel
a masik program pedig: kiolvas

4. Irjon C nyelvu programokat, ami
hozzon letre egy osztott memoria szegmenst
a felhasznalotol olvasson be szoveget, es ezt irja be az osztott memoria teruletere es

kuldjon signalt a fogado felnek, hogy kesz az uzenet (SIGUSR1)
(segitsegkeppen a masik program pid-je fixen beleteheto a programba)
a masik program pedig olvass ki az

osztott mem szegmensbol, de csak egy adott signal hatasara (SIGUSR1)
vegul szuntesse meg az shm szegmenst

5. Irjon C nyelvu programot, ami
letrehoz egy csovezeteket (egy file deszkriptor part)
elforkol
a gyermek egy signal hatasara elkuld egy rovid szoveget a

szulonek (a signalig blokkol)
a szulo kiirja a kepernyore
megszunnek a processzek (a szulo megvarja a gyereket)

6. Irjon C nyelvu programokat, ami
letrehoz egy nevesitett csovezeteket (bejegyzes az fs-en)
megnyitja
beleir valamit
kozben egy masik program kiolvassa a

csovezetekbol
ezutan az elso program szinten ir bele valamit
a masik program ujbol kiolvassa
a processzek megszunnek es az elso program eltunteti a nevesitett

csovezeteket

7. Irjon C nyelvu programokat, ami
letrehoz egy osztott memoria szegmenst
az egyik program ir bele es var par masodpercet
binaris szemafor segitsegevel "vedi" az irast

a masik program pedig kiolvas belole

8. Irjon C nyelvu programokat, ami
letrehoz egy filet
az egyik program ir bele es var par masodpercet
binaris szemafor segitsegevel "vedi" az irast
a masik

program pedig kiolvas belole a file elejetol kezdve

A beadás határideje szombat 23.59.
Nyilván megfelelő kompenzálás fejében keresnék valakit, aki "segít az elkészítésében".
Többit privátban.
üdv

(#1081) MacCaine válasza drogery (#1080) üzenetére


MacCaine
(senior tag)
LOGOUT blog

Ez a shell script topik, inkább itt kellene próbálkozni, vagy itt, vagy esetleg itt.

Dél-pesti lakás eladó, érdeklődni privátban. Pee for Houston, pee for Austin, pee for the state my heart got lost in... And shake twice for Texas. :-DDD

(#1082) CPT.Pirk


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Meg lehet valahogy oldali, hogy a shell script lépjen ki, mikor az stty -F .... soros port konfiguráló parancs nem tud lefutni, mert "helytelen ioctl hívás az eszköznek" hibaüzenet van? Ilyenkor megáll a script, amíg ki nem húzom az USB-t.

A hiba okát nem tudom, egy reset után helyrejön.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1083) Jester01 válasza CPT.Pirk (#1082) üzenetére


Jester01
(PH! addikt)

Meg, például stty ... || exit 1

Jester

(#1084) CPT.Pirk válasza Jester01 (#1083) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Köszönöm!

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1085) CPT.Pirk


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Ebben az AWK-ban a printf-s részt hogyan lehetne kihagyni? Ebben a formában nem csinál semmit, nem küldi el az xon karaktert, viszont nem jöttem rá, hogyan lehet kiiktatni ezt a sort.

Lehet van ott másik gond is, mert valamiért nem igen akar újabban letárolni fájlba értékeket, pedig eddig ment, aztán hozzá nem nyúltam...

BEGIN { printf ("\x11") > /dev/ttyUSB0; }
NR<41 { a[NR]=substr($0,1,4); b[NR]=substr($0,5,4); }
NR>41 { exit 0; }
END{
for(i=1;i<41;i++) if(a[i] > 0) printf ("%4.3f\n",20*(log(b[i]/a[i])/log(10.0))) > "/home/patch/awk/output.txt";
}

Úgy tervezem, hogy ebből a scriptből kerül meghívásra a fenti awk:

#!/bin/sh

INPUTFILE="/dev/ttyUSB0" #bemenet
OUTPUTFILE="/home/patch/awk/output.txt" #kimenet a plot számára
AWKFILE="/home/patch/awk/alma" #awk fájl
PLOTFILE="/home/patch/awk/plotfile" #paraméterek a gnuplot számára
WORKDIR="/home/patch/awk/"

stty -F /dev/ttyUSB0 9600 -clocal -cread -crtscts cs8 cstopb -parenb || exit 1 #soros port paraméterezés

if [ $OUTPUTFILE ]; then
rm $OUTPUTFILE #kimeneti fájlok előkészítése
fi
touch $OUTPUTFILE

if [ $PLOTFILE ]; then
rm $PLOTFILE
fi
touch $PLOTFILE

printf "set grid nopolar\nset xlabel \"frekvencia logaritmikus skalan [HZ]\x22\nset ylabel \x22amplitudo [dB]\x22\nset xrang$

printf "\x11" > $INPUTFILE #XON karakter küldése az FPGA-nak
awk -f $AWKFILE < $INPUTFILE #mért értékek letárolása
printf "\x13" > $INPUTFILE #XOFF karakter küldése az FPGA-nak

cd $WORKDIR
gnuplot ./plotfile -presist

Ebben a formában jól működik a karakterek elküldése.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1086) bambano válasza CPT.Pirk (#1085) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

a BEGIN kezdetű sort töröld ki teljes egészében.
viszont ilyet, hogy [ $OUTPUTFILE ] ne :)
minimum [ -f $OUTPUTFILE ]

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1087) CPT.Pirk válasza bambano (#1086) üzenetére


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Oké.

Így most tárol, de valahogy kb. mindig 41.xyz kerül a fájlba. Nem is lehetne pozitív érték.
Elvileg a kód oldalán van valami bibi, mert az fpga progijába nem nyúltam bele egy ideje.

Ezt az strace-t csináltam: [link]

[ Szerkesztve ]

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1088) CPT.Pirk


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Nem teljesen értem mi van. Az awk-s progi helyett OD-vel fájlba küldtem a kimenetet, minden alkalommal ilyen (különös tekintettel az első 3 számra, az értékük is pontosan ez minden alkalommal):

od -An -t c -N256 /dev/ttyUSB0 > $OUTPUTFILE

3 314 316 1 4 0 9 0 \n 4 0 9 1 4 0 9
0 \n 4 0 9 9 4 0 8 8 \n 4 0 9 0 4
0 8 9 \n 4 0 9 0 4 0 8 8 \n 4 0 9
1 4 0 9 1 \n 4 0 9 0 4 0 9 0 \n 4
0 9 3 4 0 9 1 \n 4 0 9 2 4 0 9 0
\n 4 0 9 2 4 0 9 1 \n 4 0 8 9 4 0
8 9 \n 4 0 9 0 4 0 8 8 \n 4 0 9 0
4 0 8 8 \n 4 0 9 1 4 0 9 1 \n 4 0
9 0 4 0 8 8 \n 4 0 9 1 4 0 9 1 \n
4 0 9 1 4 0 9 1 \n 4 0 9 1 4 0 9
0 \n 4 0 9 2 4 0 9 0 \n 4 0 9 1 4
0 9 1 \n 4 0 9 0 4 0 9 0 \n 4 0 9
0 4 0 8 8 \n 4 0 9 1 4 0 9 1 \n 4
0 9 0 4 0 8 9 \n 4 0 9 1 4 0 9 0
\n 4 0 9 1 4 0 9 1 \n 4 0 9 1 4 0

9 1 \n 4 0 9 3 4 0 9 1 \n 4 0 9 0

Az első 4 értéket nem tudom hova tenni. Ott is ~4090 körül kellene lennie a számoknak.

Az awk progi meg ezekkel a számokkal random dolgokat ment a kimeneti fájlba. Az értékek többsége -Inf, vagyis - végtelen, meg akad egy-két random negatív szám. Valamint a kiszámolt értékek száma is változó, pedig minden esetben ugyanannyi értékpárat küld az fpga, ezt figyelem az OD-vel egy másik terminálban.

[ Szerkesztve ]

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1089) koczka1002


koczka1002
(újonc)

Sziasztok!
Lenne a következő shell scriptben megírt program.A lényege hogy lottó 5öst lehet vele játszani.Nem én írtam csak szeretném megérteni és letudná valaki írni hogy sorban mit csinál?Sűrgősen kellen, nagyon megköszönném!

#!/bin/bash
echo "Kapott 5000 pontot!";
echo 5000 >eredmeny.txt
function beker
{ echo "Adjon meg öt számot 1 és 90 között, szóközzel elválasztva!";
read s1 s2 s3 s4 s5;
}
function sorsol {
let b=`date +%N`;
let a=$b-$b/100*100;
if (test $a -gt 90); then sorsol; fi
if (test $a -lt 1); then sorsol; fi
}

pont=`cat eredmeny.txt`;
while test $pont > 249 ;
let pont=pont-250;
echo "Jelenleg van "$pont" pontja.";
do beker;
# for (($i=1; $i<6; $i++)); do
sorsol; echo $a;
if (test $s1 == $a); then let pont=pont+1000; fi
sorsol; echo $a;
if (test $s2 == $a); then let pont=pont+1000; fi
sorsol; echo $a;
if (test $s3 == $a); then let pont=pont+1000; fi
sorsol; echo $a;
if (test $s4 == $a); then let pont=pont+1000; fi
sorsol; echo $a;
if (test $s5 == $a); then let pont=pont+1000; fi
done
echo pont;

(#1090) CPT.Pirk


CPT.Pirk
(PH! nagyúr)
LOGOUT blog

Na az én problémám megoldódott. Semmi hiba, valszeg a fejlesztő környezet szívat engem.

Efficiency and progress is ours once more, Now that we have the Neutron bomb It's nice and quick and clean and gets things done... c@ Dead Kennedys

(#1091) lapa


lapa
(PH! kedvence)

komolyan hülye vagyok, de ez már a 86. verzió és nem műx (./test: 7: Syntax error: "fi" unexpected)

#!/bin/sh

if [ `dmidecode -t baseboard | grep 1ZGA097Y1BL | wc -l` eq 0 ]
then
echo 'client'
else
fi

oké szóval úgy szeretném, hogy ne egysoros legyen, hanem az echo helyett sok parancs lenne.

[ Szerkesztve ]

www.lapanet.hu

(#1092) Jester01 válasza lapa (#1091) üzenetére


Jester01
(PH! addikt)

Azzal nincs baj, az else blokk üres és azt nem szereti. Vagy töröld ki az else-t vagy írjál bele valamit.

MOD: amúgy az a wc ott nagyon csúnya ... a grep-nek is van visszatérési értéke. Szóval olyasmi lehetne, hogy

if dmidecode -t baseboard | grep 1ZGA097Y1BL >/dev/null
then
...
fi

[ Szerkesztve ]

Jester

(#1093) bambano válasza lapa (#1091) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

emlékeim szerint nem eq hanem -eq és az if feltétele után a then elé ; -t kell írni

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1094) Jester01 válasza bambano (#1093) üzenetére


Jester01
(PH! addikt)

A -eq az jogos, nem vettem észre. :R A ; csak akkor kell, ha egy sorban van.

A hibaüzenet viszont attól van amit írtam. Amíg az rossz, addig a shell nem is lát neki futtatni. A -eq dolog már csak a test kapcsolója, az majd reklamál magának:

line 3: [: eq: binary operator expected

[ Szerkesztve ]

Jester

(#1095) lapa


lapa
(PH! kedvence)

#!/bin/sh

if dmidecode -t baseboard | grep 1ZGA097Y1BL >/dev/null then
echo "client"
else
echo "fazom"
fi

./test: 5: Syntax error: "else" unexpected (expecting "then")

upd: OK, szóval >/dev/null [B];[/B] then úgy néz ki műx. köszi mindkettőtöknek.

[ Szerkesztve ]

www.lapanet.hu

(#1096) sonar


sonar
(őstag)
LOGOUT blog

Sziasztok,

Hogyan tudnám azt megcsinálni, hogy a sed-nek több mintát adok be?
Jelenleg csak a Debreceni VSC-ből csinál Debrecent, de ha én még egy kör alatt mondjuk a Fradi-ból Ferencvárost akarok csinálni azt hogyan tudnám kivitelezni?

#!/bin/bash
OLD="Debreceni VSC"
NEW="Debrecen"
DPATH="proba.txt"
BPATH="proba1.txt"

cat $DPATH | sed "s/$OLD/$NEW/g" > $BPATH

A tudást mástól kapjuk, a siker a mi tehetségünk - Remember….Your life – Your choices!

(#1097) Jester01 válasza sonar (#1096) üzenetére


Jester01
(PH! addikt)

$ echo ABCABC | sed 's/A/X/g; s/B/Y/g; s/C/Z/g'
XYZXYZ

Jester

(#1098) pomm


pomm
(újonc)

Sziasztok!

Kicsit elakadtam, hátha van valakinek valami használható ötlete, hogy hogyan is kellene megoldanom ezt a problémát.
Van egy darab fájlom, amiben van x darab sor. Nem tudom előre soha a sorok pontos számát, csak azt, hogy a sorok száma minden esetben hattal osztható. Nekem össze kellene fűznöm azokat a sorokat, amelyek

az adott sor száma + (az összes sorok száma osztva hattal).

Tehát érthetőbben:
Ha van 24 sorom, akkor az elsőt a 1+(24/6) sorral, tehát az ötödikkel kellene úgy összeraknom, hogy a első sor mögé rakja az ötödik sort, a második mögé a 2+(24/6) sort, azaz a hatodikat. Ha végére ér, újra kezdi, ezt egészen addig, amíg a sorok száma hattal osztható.
Minden ötletet előre is köszönök!

üdv: pomm

(#1099) Jester01 válasza pomm (#1098) üzenetére


Jester01
(PH! addikt)

Nem biztos, hogy jól értettem a feladatot mert kicsit zavaros a megfogalmazás, az első két sorra viszont jó :P

$ cat >script.sh
#! /bin/bash

count=`wc -l "$1"`
count=${count%% *}
slice=$((count / 6))

exec 3< "$1"
for ((i=0;i<3;i+=1))
do
for ((j=0;j<slice;j+=1))
do
read -r -u 3 line
buffer[j]=$line
done
for ((j=0;j<slice;j+=1))
do
read -r -u 3 line
echo ${buffer[j]} $line
done
done
$ chmod +x script.sh
$ seq 1 24 >in.txt
$ ./script.sh in.txt
1 5
2 6
3 7
4 8
9 13
10 14
11 15
12 16
17 21
18 22
19 23
20 24

Jester

(#1100) bambano válasza Jester01 (#1097) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

új kérdés: van ötleted, hogy lehetne helyben módosítani egy fájlt?
ha csinálok egy ilyet:
sed .... file.txt >file.txt akkor a fájl értelemszerűen üres lesz, ezért el kell másolni valahova, onnan indítani a sed-et és visszairányítani a helyére. van ötleted, hogy másolás nélkül ezt hogy lehet? vi batch módban vagy ilyesmi?

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

(#1101) Jester01 válasza bambano (#1100) üzenetére


Jester01
(PH! addikt)

man sed
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if extension supplied)

Jester

(#1102) bambano válasza Jester01 (#1101) üzenetére


bambano
(PH! nagyúr)
LOGOUT blog

érdekes manualod van...
man sed | grep in-place | wc -l
0

:R

közben megnéztem, a magyar man régi. kösz.

a PH! kedvenc ISP-trollja (C) Tyberius | http://itcafe.hu/tema/a_nagy_openwrt_topic/friss.html

Copyright © 2000-2012 PROHARDVER Informatikai Kft.