Hirdetés

2024. április 27., szombat

Gyorskeresés

Hozzászólások

(#1351) sh4d0w válasza dabadab (#1350) üzenetére


sh4d0w
nagyúr
LOGOUT blog (1)

Igen, ugyanaz, csak még meg kellett oldanom, hogy a like-nak is megfeleljen, sqlite-nak meg aposztrófok között kell átadni a shell változó tartalmát.

https://www.coreinfinity.tech

(#1352) szoke12


szoke12
őstag

Xls(x)-t tudok xml-be konvertálni valahogy?

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1353) sh4d0w válasza szoke12 (#1352) üzenetére


sh4d0w
nagyúr
LOGOUT blog (1)

Megnyitod ekcelben, save as CSV...

https://www.coreinfinity.tech

(#1354) szoke12 válasza sh4d0w (#1353) üzenetére


szoke12
őstag

köszi, az a baj, hogy nagyon sok file, ezért valami olyan megoldás kéne, ami *.xls elven legyártaná őket.

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1355) f_sanyee válasza szoke12 (#1354) üzenetére


f_sanyee
senior tag

libreoffice-val probald, van command line option -convert-to

(#1356) SteveBeard


SteveBeard
senior tag

Sziasztok!

Kéne egy "kis shell script topik" is kezdőknek... ;)

Két számot kéne összehasonlítanom a problémám csak az, hogy tizedes számról van szó eben a formában.
1.11
Egész számokkal működik
if [[ 3 -ge 2 ]]
then
echo "nagyobb"
else
echo "kisebb"
fi

de ha így írom be
if [[ 3.00 -ge 2 ]]
then
echo "nagyobb"
else
echo "kisebb"
fi

bad number hibaüzenetet kapom.

Steve

(#1357) bambano válasza SteveBeard (#1356) üzenetére


bambano
titán
LOGOUT blog

a bash nem kezel törteket. szét kell szedned egész részre és tört részre.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1358) SteveBeard válasza bambano (#1357) üzenetére


SteveBeard
senior tag

Szomorú vagyok.

Találtam egy ilyet, de valamiért nem jó:
[[ "$3.00" =~ ^([1-9][^.]{2}|[7-9][0-9]|6[1-9]|2\.[0-9]*[1-9]) ]] \ && echo nagyobb

Steve

(#1359) szoke12 válasza SteveBeard (#1358) üzenetére


szoke12
őstag

Próbáld ki a bc-t. lehet telepíteni kell.
az elméletileg tud ilyet.

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1360) szoke12


szoke12
őstag

Helló!
Csinálok épp egy olyan progit, ami sok fileból áll. ezek mind scriptek, futtathatóak. viszont majdnem mindegyikben van változódeklaráció, és változóérték-hivatkozás is. de amit az egyikben ledeklarálok, azt a másik srcipt már nem tudja. valahogy tudnám exportálni a változókat, hogy legyen a scriptek közt "átjárás"? hogy kezeljék egymás változóit?

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1361) bambano válasza szoke12 (#1360) üzenetére


bambano
titán
LOGOUT blog

alapvetően sehogy, mert amit másik futtatási környezet futtat, azt nem látja.
megkerülni úgy lehet, hogy a deklarációkat egy fájlba teszed, és ponttal beolvasod oda, ahol szintén szükséges.
tehát így:

#! /bin/bash

. valtozok.sh

másik megoldás, hogy a változót exportálod a futtatási környezetbe, így a belőle indított al-shellek is látni fogják. a bash manual olvasgatása javasolt az export utasítás környékén. de ez még mindig nem teljes megoldás.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1362) szoke12 válasza bambano (#1361) üzenetére


szoke12
őstag

köszi! olvasom.
igen, az a baj, hogy ezek a változók még a program használata alatt is folyamatosan változnak. így egy fájl folyamatos szerkesztése... hát elég macerás lenne

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1363) f_sanyee válasza szoke12 (#1360) üzenetére


f_sanyee
senior tag

egymast hivjak a scriptek? mert akkor argumentekkent tudod nekik passzolni.

(#1364) bambano válasza f_sanyee (#1363) üzenetére


bambano
titán
LOGOUT blog

csak visszafelé nem megoldott az adatátvitel.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1365) buherton válasza szoke12 (#1362) üzenetére


buherton
őstag

Én perl-t hivogatnék bash-ból, és IPC-t használnék.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#1366) sh4d0w válasza bambano (#1364) üzenetére


sh4d0w
nagyúr
LOGOUT blog (1)

Ha csak számok vannak a változókban, akkor megadja exit code-nak és akkor a parentben is lekérdezhető - de ettől függetlenül buhertonnak igaza van, perllel, pythonnal egyszerűbb lehetne.

[ Szerkesztve ]

https://www.coreinfinity.tech

(#1367) bambano válasza sh4d0w (#1366) üzenetére


bambano
titán
LOGOUT blog

ha csak szám van egy változóban, akkor. több integer visszaadása egy exit code-ban már kicsit munkásabb lenne... nem lehetetlen, csak munkás :)

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1368) Jester01 válasza bambano (#1367) üzenetére


Jester01
veterán

Főleg mivel az exit code az 8 bites. Túl sok integer nem fér bele.

Jester

(#1369) bambano válasza Jester01 (#1368) üzenetére


bambano
titán
LOGOUT blog

egyébként ha nagyon muszáj sok számot visszaadni, akkor úgy szoktam, hogy a meghívott script végén egy printf, a hívást pedig ertek=$(scriptnev par par) formában csinálom, és az értékeket szam|szam|szam alakban adom vissza.

elég barkács módszernek érzem.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1370) Jester01 válasza bambano (#1369) üzenetére


Jester01
veterán

bash-t feltételezve elég szép módszer, ha a hívott script asszociatív tömb inicializációs listát ad vissza (más nyelvekben tuple :) )

$ cat parent.sh
#! /bin/bash

declare -A result=$(./child.sh)
echo ${result[foo]} ${result[bar]}
$ cat child.sh
#! /bin/bash

echo "([foo]=42 [bar]=1)"
$ ./parent.sh
42 1

Jester

(#1371) szoke12 válasza buherton (#1365) üzenetére


szoke12
őstag

köszi! utánanézek. :)

sh4ad0w: általában nem számok. kb az egész progi alatt 20 változó van.

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1372) sh4d0w válasza szoke12 (#1371) üzenetére


sh4d0w
nagyúr
LOGOUT blog (1)

Akkor marad vmi nem-shell scriptnyelv.

https://www.coreinfinity.tech

(#1373) szoke12


szoke12
őstag

Helló!
Vannak számok, és nekem el kell döntenem, hogy hány 0 van az elején. Ha 1 darab van, nincs gond, maradhat a szám. De ha 2, vagy 3 darabbal kezdődik, akkor csak egy db 0-nak szabad maradnia. Még az nehezít, hogy előfordulhat a számban több 00 is.
Ha valami megoldást tudtok, előre is köszönöm!

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1374) Jester01 válasza szoke12 (#1373) üzenetére


Jester01
veterán

bash specifikus megoldás arra az esetre ha mindenképp van az elején nulla vagy ha kell az elejére nulla akkor is ha nincs:

$ shopt extglob
extglob on
$ x=123
$ echo 0${x##+(0)}
0123
$ x=0123
$ echo 0${x##+(0)}
0123
$ x=00123
$ echo 0${x##+(0)}
0123
$ x=000123
$ echo 0${x##+(0)}
0123
$ x=12003
$ echo 0${x##+(0)}
012003

Szabványos megoldás:

case "$1" in
0*)
echo -n 0
expr substr "$1" \( index "$1" 123456789 \) \( length "$1" \)
;;
*)
echo "$1"
;;
esac

Jester

(#1375) szoke12 válasza Jester01 (#1374) üzenetére


szoke12
őstag

:R

Még sokat kell tanulnom. :)

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1376) buca84


buca84
őstag

Olyan kérdésem lenne, hogy tudnátok segíteni abban, hogy script segítségével megoldható lenne az alábbi dolog?
Egy adott felhasználó adott időt használhassa a gépet, majd a rendszer léptesse ki és ne engedje vissza.

Vagy erre lenne más megoldás?

Szájbarágósan vki le tudná vezetni. Soha nem programoztam.

Köszi!

(#1377) bambano válasza buca84 (#1376) üzenetére


bambano
titán
LOGOUT blog

melyik rendszer? ez a topic eléggé a linux shellhez húz.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1378) buca84 válasza bambano (#1377) üzenetére


buca84
őstag

Debian alap lenne. LinuxMint debian.

(#1379) vanek


vanek
tag

Üdv

Olyan problémám lenne, hogy mi a bah ezzel?

#! /usr/bin/bash


case $1 in
[0-9]*) echo szam;;
[a-z]*) echo betu;;
esac

a hiba pedig szintaktikai hiba a váratlan $'in\r' vezérjelkörül `case $1 in

vélemény?

köszi

(#1380) buherton válasza vanek (#1379) üzenetére


buherton
őstag

Nálam megy rendesen
#!/bin/bash

case $1 in
[0-9]*) echo szam;;
[a-z]*) echo betu;;
esac

$ ./proba.sh asd
betu

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#1381) vanek válasza buherton (#1380) üzenetére


vanek
tag

hihetetlen.. akkor esetleg tudsz ajánlani valami programot, ami windows alatt jól futtatja a scriptet? cygwin-t használok, ami awk-hoz jó..de bash-hez nem nagyon :\

(#1382) buherton válasza vanek (#1381) üzenetére


buherton
őstag

Jah, hogy cygwin :D . Az egy végtelenül erőszakos, és nem mellesleg bugos cucc, de tudtommal egyetlen, ami windowsra van.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#1383) vanek válasza buherton (#1382) üzenetére


vanek
tag

yess

még nem nagyon foglalkoztam ilyennel, de gondolom van portable linux.. leszedek egyet.. :W

jah és köszi egyébként ! :) :R

[ Szerkesztve ]

(#1384) buherton válasza vanek (#1383) üzenetére


buherton
őstag

Vagy vm-t csinálsz magadnak és akkor egy teljes értékű Linuxot fogsz tudni használni :) . Ajánlom a virtualboxot. Én pont Linux alatt csináltam vm-t az XP-nek :D .

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#1385) Jester01 válasza vanek (#1379) üzenetére


Jester01
veterán

A \r az a carriage return (13) karakter ami a windowsos sorvégjel (CR LF) része a shell viszont nem örül neki. Konvertáld unixos szövegfájllá amiben LF (10) a sorvég.

Jester

(#1386) vanek válasza Jester01 (#1385) üzenetére


vanek
tag

Köszi szépen a segítségeket! :) sajnos a konvertálás nem jött össze :\ szedtem hozzá programot, próbáltam paranccsal is..de semmi:\

A vm jó ötlet volt! :D fel is raktam a legújabb ubuntut, de sajnos kevés hozzá a gépem, így akadt mint a fene:D

Végül találtam egy bash nevű progit, ami jó arra amire kell :D

nos lenne még egy problémám..

#! /bin/bash

szam=0
szorzat=1
osszeg=0

I=$1
for I in $@
do
case $1 in
[1-9]*) $((szorzat = szorzat*$1)) $((osszeg = osszeg + $1)) $((szam = szam + 1)) 2> /dev/null ;;
[a-z]*) echo Hiba! $1 nem szam;;
esac
shift
done
atlag =`expr $osszeg \ $szam`
echo $szorzat
echo $osszeg
echo $atlag
echo $szam

a probléma pedig, hogyan számolok átlagot? valamint, [1-9]*) $((szorzat = szorzat*$1)) $((osszeg = osszeg + $1)) $((szam = szam + 1)) ezt a sort, nem lehetne egyszerűbben megoldani? és miért kell dupla zárójel :D sajna máshogy nem működött!:)

köszi ;)

[ Szerkesztve ]

(#1387) Jester01 válasza vanek (#1386) üzenetére


Jester01
veterán

Azért kell a dupla zárójel mert így találták ki.
Egyébként általában inkább szorzat=$((szorzat*$1)) formában szokás írni mert úgy talán olvashatóbb (és persze azt a hármat külön sorokba). Az átlagszámításnál ne \ (visszaper, backslash) karaktert használj, hanem a "rendes" / perjelet. A shell sajnos csak egész aritmetikát használ tehát ha neked tizedestörtek kellenek akkor ajánlott valami segédprogram (jellemzően bc) alkalmazása.

Jester

(#1388) galaxyman


galaxyman
csendes tag

Sziasztok,
Ezt a feladatot meg tudná nekem valaki csinálni? Nagyon hálás lennék érte : Készíts szkriptet, amelyik 2 fájlt kap paraméterül. Az egyik fájlban egy szöveg található, a másikban szópárok. A szópárok első tagját ki kell cserélni a szövegben a második szóra. Ellenőrzésekkel (paraméter, fájl).

(#1389) Jester01 válasza galaxyman (#1388) üzenetére


Jester01
veterán

Házi feladatot nem szokásunk megcsinálni más helyett :N

Jester

(#1390) galaxyman válasza Jester01 (#1389) üzenetére


galaxyman
csendes tag

Nem házi de nagyon kellene, power shellben meg tudom csinálni csak simában nem

(#1391) bambano válasza galaxyman (#1388) üzenetére


bambano
titán
LOGOUT blog

sed manualja sokat segíthet.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1392) evi1101


evi1101
csendes tag

Sziasztok! Van 4 feladatom amiben a segítségeteket szeretném kérni.
1. Írjon shell scriptet, mely addig kér be számokat, míg 0-t nem kap. Ha ez megtörténik írja ki
az addig beolvasott számok összegét!
2. Írjon shell scriptet, mely a paraméterül kapott számok közül kiírja a legkisebbet, a
legnagyobbat és a számok átlagát!
3. Írjon shell scriptet, mely bekér 3 számot és eldönti, hogy megszerkeszthető-e belőlük a
háromszög. Ha igen, akkor határozza meg azt is, hogy milyen típusú háromszög!
4. Írjon shell scriptet, mely bekéri a felhasználótól, hogy mely 5 db 1-90 közötti számokat
szeretné megtenni az eheti ötöslottón, majd véletlen szám generálással kisorsolja az 5 db
nyerő számot és végül kiírja a kisorsolt számokat és hogy hány találata volt! (A számok
között ismétlődés értelem szerűen sehol sem megengedett!)
Ezt kaptuk gyakorlásnak a zh-ra csak még hasonlókat sem gyakoroltunk órán...
Előre is köszönöm a segítséget

(#1393) bambano válasza evi1101 (#1392) üzenetére


bambano
titán
LOGOUT blog

A segítség a mi értelmezésünkben arról szól, hogy ha megakadtál, megsúgjuk azt az 1-2 kulcsszót, amivel továbblendülsz. A segítség biztosan nem jelenti azt, hogy megírjuk helyetted az egészet, az sem nem volna etikus, sem nem volna törvényes.

De erről alig pár hsz-szel korábban már volt itt szó.

Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis

(#1394) buherton válasza bambano (#1393) üzenetére


buherton
őstag

Jönnek az utolsó hetek az egyetemeken :D . Ilyenkor mindenhol megszaporodnak az ilyen jellegű kérések.

tely, baly, fojó, mennyél, mingyárt, telyföl, tolyás, malyd, kapú, egyenlőre, ejsd, jáccani, ahoz, fúj, hüje, muszály, alat, álok, lasan, fojtatás, ál, fontós, költsön, eggyüt, lyob (jobb?), mek, mongyak, milyért - !!! Tanúlyunk már meghejjessen irni... !!!

(#1395) szoke12


szoke12
őstag

helló!
a scriptemben szertnék változókat gyártatni, és mindegyiket értékkel ellátni.
pl:
T1=1
T2=2
T3=3
.
.
.
de mivel sok ilyen van (kb 50 db), így a változók sorszámozását egy while paranccsal szeretném előállíttatni.
hogy tudom a változó nevét úgy megadni, hogy abban mindig legyen egy szám (egy változóból), ami egyel nő?
:R

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1396) Jester01 válasza szoke12 (#1395) üzenetére


Jester01
veterán

Ezt az adatszerkezetet úgy hívják, hogy tömb. Ha valami extrém ok miatt az mégsem felel meg neked, akkor lásd ezt.

Jester

(#1397) szoke12 válasza Jester01 (#1396) üzenetére


szoke12
őstag

köszi!
erre gondoltam. lehet, el is kezdek ismerkedni a tömbökkel. :)

"Élj úgy, hogy ha majd lepereg előtted életed filmje, érdemes legyen végignézni!"

(#1398) vanek


vanek
tag

Üdv!

Lenne két gyors kérdésem..

van egy script:#! /usr/bin/awk -f

{
FS=";"
tav[$2] += $5

}

END{
for(taj in tav)
{
print taj, " " tav[taj]

}
}

ezzel szeretném összeadatni a tájegységekhez tartozó távokat

Romania; Kelemen-havasok; Marosheviz; Pietros; 11
Magyarorszag; Borzsony; Diosjeno; Nagy-hideg-hegy; 19
Romania; Kelemen-havasok; Marosheviz; Pietros; 25
Magyarorszag; Matra; Gyongyos; Matraszentistvan; 23
Magyarorszag; Borzsony; Diosjeno; Nagy-hideg-hegy; 12
Magyarorszag; Matra; Gyongyos; Matraszentistvan; 18
Romania; Kelemen-havasok; Marosheviz; Pietros; 17

$2 taj $5 a tav

na most ilyen formában ezt az eredményt kapom:

Matra 41
Borzsony 31
Kelemen havasok 42
Kelemen havasok; 11

az első sorral van valami probléma..:\ de nem tudom, hogy mi lehet a baj, ha pedig nyomok egy entert, az első sor elé, akkor pedig azt kapom, hogy

Matra 42
0
Borzsony 31
Kelemen havasok 53

Előre is köszi

(#1399) Jester01 válasza vanek (#1398) üzenetére


Jester01
veterán

Az FS-t vagy BEGIN blokkban vagy parancssori argumentummal kell beállítani mert így értelemszerűen az első sorra nem vonatkozik. Az üres sorokat pedig külön kell lekezelni ha szükséges.

Jester

(#1400) vanek válasza Jester01 (#1399) üzenetére


vanek
tag

A parancssori arg. kilőve, nekem BEGIN-ben kellene..:\ de akkor mit írjak action part-nak?

Copyright © 2000-2024 PROHARDVER Informatikai Kft.