- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Linux kezdőknek
- Aliexpress tapasztalatok
- Hálózati / IP kamera
- DIGI internet
- Videó stream letöltése
- Álláskeresés, interjú, önéletrajz
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- SkyShowtime
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz pepe006 #1653 üzenetére
A find kapcsolóiról a man page ad részletes leírást.
Az f még a -type-hoz tartozik, az ellenőrzi, hogy mezei file legyen.
A -printf kiíratási művelet azzal megspékelve, hogy különböző dolgokat lehet behelyettesíteni. A %H az argumentum neve ami alatt megtalálta a fájlt, a \n szokás szerint soremelés.
A -quit pedig abbahagyja a keresést az első találat után. Ez nem csak a hatékonyság miatt van, hanem azért, hogy csak egyszer írja ki.A */ az kilistázza a könyvtárakat (az első szinten), és a for ciklus ezeken megy végig. Mint említettem a feladatkiírás nem volt teljesen precíz, szóval nem tudom ez-e az elvárt működés.
[ Szerkesztve ]
Jester
-
Dagobert07
tag
Sziasztok kellene egy kis help a beadandómhoz!!!!
Válaszotokat előre is köszönöm!
A feladat a következő: Levelezőlista
A shell script automatikusan továbbítsa a beérkező leveleket a levelezési listára feliratkozott felhasználóknak. Valósítsa meg az automatikus fel- és leiratkozásokat is. A próbák során ne zavarjon másokat!
Már nagy részben kész a script az megvan hogy aki feliratkozik annak automatikusan küld egy üdvözlőlevelet,A fel és leiratkozás megvan , annyiból áll hogy menti txt-fájlba az emailt, tesztelve jól működik
a másik része az lenne hogy ha érekezik az email címemre egy mail továbbítsam annak a txt fájlos emailcímeknek.Aki tudna nekem segíteni leírhatja itt is fórumba,a helyzet hogy nem vagyok zseni belőle ez a része nekem elég nehéz, így aki személyesen tudna és szeretne segíteni itt a Facebook oldalam: https://www.facebook.com/arvaiati
MINDENKINEK ELŐRE KÖSZÖNÖM !!
-
Speeedfire
nagyúr
Erre nekem miért írja, hogy túl sok argumentum?
if [ [ $IF_FILE_PROCESSED -eq "0" ] && [ $IF_FILE_ERROR -eq "0" ] ];
[: too many arguments
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Jester01
veterán
válasz Speeedfire #1657 üzenetére
Mert dupla [ jellel kezdted, amik között ráadásul szóköz is volt. Ebben a formában az első az a test programot hívja meg, a második pedig már annak argumentum ezért fog besokallni. bash-ban van [[ konstrukció is, de ekkor nem szabad szóközt tenni mert ilyenkor ez a dupla zárójel egy egység, és ilyenformán kell lezárni is. Vagyis 2 lehetőséged van:
1.) test használata:
if [ $IF_FILE_PROCESSED -eq "0" ] && [ $IF_FILE_ERROR -eq "0" ];
2.) [[ használata:
if [[ $IF_FILE_PROCESSED -eq "0" && $IF_FILE_ERROR -eq "0" ]];A 0-át egyébként teljesen fölösleges idézőjelbe tenni, a változókat viszont célszerű ha nem tudod biztosan mi lehet bennük.
[ Szerkesztve ]
Jester
-
Speeedfire
nagyúr
Shell scriptben lehet csinálni valami kivétel kezelést (try{}catch{}), mint más nyelvekben?
Egy ideje fontozgatom a feldolgozót, de nem az igazi.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
dabadab
titán
válasz Speeedfire #1660 üzenetére
Igazan eleve nincsenek igazan exceptionok, igy aztan nagyon nincs is mit lekezelni
Ami van, azok a signalok, azokat meg (bash-ben, a tovabbiak konkretan arrol szolnak) a trap utasitassal lehet lekezelni, illetve a trap a signalokon kivul meg ismer par egyeb alkalmat is (EXIT - a script vegen, RETURN - return utasitaskor, DEBUG - kb. minden parancs elott, ERR - ha egy parancs nemnulla visszateresi erteket ad)
Valos eletbol vett pelda arra, hogy barhol lepjen ki a program, mindig umountolja a felmountolt fs-t (a 0 az EXIT "szignal"):
mount $INMNT
trap "umount $INMNT" 0[ Szerkesztve ]
DRM is theft
-
Speeedfire
nagyúr
válasz dabadab #1661 üzenetére
Konkrétan van 3 sqlplus és 1 sqlldr parancs, ami meghal ha pl nincs adatbázis kapcsolat, vagy a fájlban valami rossz. Ilyenkor meg megáll a script, ekkor lenne jó, pl egy exception. Vagy ha azt mondom, hogy:
sql=trap sqlplus
akkor ezt visszatér valami értékkel? Elég hülyén van megcsinálva a 2 sql error kezelése, vagy csak én vagyok béna. Nem tudom.
Az sqlplus-hoz csak spool fájl van, amibe visszaírja az eredményt. Az sqlldr meg paraméteresen van error log fájl, de ott van, hogy 10 percig tölti az adatbázisba az adatokat és nem tudom, hogy mi a baja.Ami még fura nekem, hogy a legtöbb esetben hiba nélkül fut a script, ha így indítom el
bash pelda.sh, de ha mögé teszek egy & jelet, akkor már 10/10 alkalommal lehal.
Solaris serveren van.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
válasz Speeedfire #1662 üzenetére
A trapek az aktuális shell szkriptnek küldött megszakítások elkapására jók.
ha az sqlldr meghal, akkor annak az exit státuszát kell lekezelni, arra a trapek szerintem nem jók.
valamelyik bash változóban benne van az utoljára futtatott parancs exit státusza (közben elolvastam, $?), ami nulla, ha jól futott le, valami más szám, ha nem, és 128+n, ha az n. megszakítás hatására lépett ki.A háttérben futtatás hibánál meg azt kellene megnézni, hogy a programok nem akarják-e használni a /dev/tty-t, mert lehet, azért akad le háttérben. linuxon strace van, solarison emlékeim szerint truss.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Speeedfire
nagyúr
válasz bambano #1663 üzenetére
Ez jónak tűnik, mert akkor elvileg ennyivel le lehetne kezelni, igaz minden egyes sqlldr vagy sqlplus utasításhoz kell egy ilyen "burok", de nem vészes.
Tehát ha jól értettem:sqlldr @sql
if [$? -eq 0];
then
#megvalami
else
#hibaeset
fiElvileg semmi olyat nem írtam a scriptbe, ami miatt a /dev/tty-t kellene használni, de ettől függetlenül elképzelhető. Alapesetben cron-nal futna le, csak most foltozom még és tesztnél jobb lett volna a &.
Köszi az infókat.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
válasz Speeedfire #1664 üzenetére
nem te írod bele a szkriptbe, hanem benne lehet a programban.
például azok a programok, amik jelszót akarnak bekérni, elég gyakran nem a szabvány bemenetet és kimenetet használják, hanem közvetlenül a terminált, hogy ne lehessen átirányítani a jelszó beírást. az ilyeneknél előfordul, hogyha leteszed háttérbe, megáll.egyébként így is lehet, grafománia esetén, de tömörebb:
sqlldr @sql && ha sikerült
vagy
sqlldr @sql || ha nemsikerült.
ja, arra figyelj, hogy a cron-nál nem ugyanaz szokott a keresési út lenni, mint a bejelentkezéskor, ezért van, hogy program natívan bejelentkezve fut, crontabból meg nem. crontab esetén be kell állítani minden környezeti változót újra.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
dabadab
titán
válasz bambano #1663 üzenetére
"ha az sqlldr meghal, akkor annak az exit státuszát kell lekezelni, arra a trapek szerintem nem jók."
De, tud ilyet is:
#!/bin/sh
trap "echo hiba!" ERR
echo true
# ennek nulla a visszateresi erteke
true
echo false
# ennek nemnulla a visszateresi erteke
false
echo vegeMondjuk a legtobb esetben tenyleg sokkal hasznalhatobb az "if [ $? -ne 0 ] ; then [ ... ] fi" szerkezet.
DRM is theft
-
Speeedfire
nagyúr
válasz bambano #1665 üzenetére
Ez a forma is tettszik, de több soros sikeres futás esetén a többi parancs. Az sqlldr-t tudom, hogy paraméterrel meglehet hívni jelszó megadással. Jobban mondva conncetion string-gel.
sqlldr @sql && ha sikerült
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
prucam
tag
Sziasztok,
lassan "farigcsálom" a sciptem, s szeretnék újra segítséget kérni tőletek.
Szitu:
- teljes soregyezést vizsgálunk
- van két file-m, egy hosszú (a_file), s egy rövidebb (b_file). Azt melyik paranccsal tudom megcsinálni, hogy "b_file" sorai közül melyik nem szerepel az "a_file-ben"?Készítettem egy képet is, hogy érthető legyen:
"a" és "b" file-k, csak a "b"-ben szerepel:
Dinnye Héja
Kívül Zöld Belül Piros?Ezeket szeretném eredményül. Légyszí segítsetek!
Köszönöm
[ Szerkesztve ]
-
-
prucam
tag
válasz bambano #1669 üzenetére
kipróbáltam rendezés nélkül:
# diff A_file B_file
6,7d5
< Dinnye Héja
< Kívül Zöld Belül Piros?
19c17
< Kobalt F1
---
> Kobalt F1
\ No newline at end of fileEz mit jelenthet: 6,7d5
a 6 és a 7 a sorok sorszámát. d5?
19c17: meg gondoloma file-k hany sorból állnakEgy darabig próbálgattom, de ez nekem megfelel. Majd megláttom mit szól az 5000 soros file-hez...
-
-
alfa20
senior tag
Sziasztok,
Egy kis segítséget szeretnék kérni, készítettem egy script-et aminek az a lényege, hogy ha felteszem az Ubuntut egy gépre, akkor automatikusan minden szükséges tárolót felvesz, lefrissíti a rendszert, majd automatikusan telepíti/eltávolítja a szükséges (megszokott) programokat, ez a kis script nagyon jól teszi a dolgát.
Most viszont szeretném kicsit megváltoztatni, hogy mindezt a whiptail-el tegye szeretném kicsit csinosítani, ezzel is megvagyok egy változatban, csak az a baj hogy "sudo ./install.sh"-val kell indítanom terminálból, mert a "whiptail --passwordbox"-al sehogy sem boldogulok.Valaki meg tudná mutatni hogy működik?
Hogy tudnám vele elérni, hogy pl. a "sudo apt-get update"-hez egy witget-be kérje a jelszót?google-ban kerestem, de nem találtam használhatót az angollal meg hadi lábon állok
"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
Jester01
veterán
-
alfa20
senior tag
válasz Jester01 #1674 üzenetére
köszi,
de most az értem el ezzel, hogy a witget-be hiába írom be a jelszót utána ugyan úgy bekéri.
olyat nem lehet hogy egy változóba teszem a jelszót pl: $pwd és ennek az értéket adja meg sudo-hoz?"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
alfa20
senior tag
válasz Jester01 #1678 üzenetére
így néz ki a próba script:
#!/bin/bash
exec 3>&1
pwd=`whiptail --passwordbox 'Add meg a rendszergazda jelszavát:' 8 40 2>&1 1>&3`
exec 3>&-
whiptail --passwordbox 'passwrd' 8 28 | sudo -S -p " " apt-get updateeredmény:
az első rész bekéri a jelszót majd eltárolja a $pwd váltózóban
ez szépen működik,
a második résznél viszont "Sorry, try again." üzenet fogad 3x, majd "sudo: 3 incorrect password attempts""Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)
-
Jester01
veterán
Ja látom már mi a probléma, a whiptail-nek szüksége van az stdout-ra de a pipe azt átirányítja, így amit ő a terminálba írogatna azt a sudo mint jelszót megkapja. Elvileg ez jó lesz mert megcseréli az stdout-ot és az stderr-t:
whiptail --passwordbox 'passwrd' 8 28 3>&2 2>&1 1>&3- | sudo -S -p "" apt-get update
Vagy, ha már megvan a jelszó akkor egyeszerűen:
echo $pwd | sudo -S -p "" apt-get update
Jester
-
Jester01
veterán
válasz sto1911 #1682 üzenetére
Az 1-es deszkriptort (stdout) és a 2-est (stderr) szeretnénk megcserélni, mert a | pipe az 1-est irányítja át miközben a whiptail a 2-esre írja az eredményt és az 1-est pedig a terminálhoz használná.
A cseréhez a szokásos módszert használtam:
tmp=a
a=b
b=tmpVagyis először a 2-est ideiglenesen lemásoljuk a 3-asra (3>&2) majd az 1-est a 2-esre (2>&1) végül a 3-ast az 1-esre (1>&3-) és itt a 3-ast be is zárjuk.
Jester
-
Jester01
veterán
válasz sto1911 #1686 üzenetére
Nincs fordítva mert az 1>file is azt jelenti igazából, hogy a jobb oldalon lévő fájlt nyissa meg (írásra) és mostantól az legyen az 1-es deszkriptor. A nyíl az egyenlőségjel (értékadás) helyett áll, az iránya pedig a megnyitás módjára utal.
1>file azt jelenti 1=file (és írni fogunk bele)Jester
-
prucam
tag
Sziasztok!
azt szeretném megtudni, hogy egy file-ben, milyen karakterek vannak, betűkön [Aa-Zz] és számokon [0-9] kívül.
Valami ilyesmi lenne az eredmény:
()+-:.!?[]
Lehet egy sorba is, v. egymás alá is.
üdv
-
prucam
tag
Szia,
köszi a segítséget!
Itt ülök kb. 30 perce, de nem igazán értem....
Egyszerűbben is lehetne?
Valahogy így:grep -v '[a-zA-Z0-9]' abc > abc_2
1. nem akarom törölni a karaktereket, csak tudni kellen mégis mi fordul elő a fájlban
2. nem kell, hogy hányszor fordul elő. Csak lista.üdv
-
McSzaby
őstag
Sziasztok,
grep stdout-t szeretném fájlba írni úgy, hogy a képernyőre ne dobja ki. Mindezt egy forcikluson belül, de sehogy sem tudom megcsinálni.
Tudtok tippet adni hogy küldöm be a grep stdout-t egy fájlba?
#ThankYouSirAlex #ThankYouLouis
-
válasz McSzaby #1691 üzenetére
a szokásos grep akarmi filenev>logfile formával mi a gond?
ha az a gond, hogy a forciklus miatt letörli az elejét, akkor lehet >>logfile formát használni, vagy a teljes forciklus kimenetét fájlba tolni:
for akarmi; do
grep hegyek
done >lofgileEgy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
ChiliChili
tag
Sziasztok! Ti talán tudtok segíteni, remélem, jó helyen járok. Egy rossz rsync algoritmussal, letöröltem néhány *.dmg (Mac OSX disk image file) kiterjesztésű fájlt egy ext3-as meghajtóról. Ezeket szeretném visszaszerezni a PhotoRec segítségével, úgy hogy készítek egy custom signature (custom.sig) filet. Illetve csak készítenék, mert nem működik a dolog. Nem is működhet, mert nem igaztán értem, mit kellene tennem. Próbáltgattam szerkeszteni a photorec.sig fájlt, de nem jártam eredménnyel, továbbra is unknown üzenetet kapok a fidentify parancsra.
Itt egy hexdump | head egy *.dmg fájlból:
00000000 78 01 ed d7 41 6a c2 40 14 00 d0 af 86 2e ba 75 |x...Aj.@.......u|
00000010 5d 98 6d 77 a2 45 97 6d a0 16 a4 34 01 a9 07 f0 |].mw.E.m...4....|
00000020 0a 9e a0 07 e8 a2 f4 18 5e c0 43 79 81 ee 6c 22 |........^.Cy..l"|
00000030 0a ea 3a 8b 40 de 5f 24 33 93 30 fc 79 7f f3 67 |..:.@._$3.0.y..g|
00000040 1f 3f e9 14 d1 7f f9 cd fa 51 c5 5f c4 73 1c 22 |.?.......Q._.s."|
00000050 52 35 ce 76 83 dd 43 bd 18 51 7f eb c5 dd 71 7c |R5.v..C..Q....q||
00000060 7e 7c c5 e3 e4 69 3c 2b 16 ef 65 91 5e a7 a3 51 |~|...i<+..e.^..Q|
00000070 7a cb 3f 27 e3 6a cb f3 1f de ed 15 58 6d 97 cb |z.?'.j......Xm..|
00000080 75 de de fc 64 d6 84 c0 66 93 af 87 e5 7d 0c be |u...d...f....}..|
00000090 b3 9b ed 56 db 9b 05 d3 4e 09 a8 7f a7 ca ed b0 |...V....N.......| -
prucam
tag
-
válasz ChiliChili #1695 üzenetére
ha ráírtál arra a meghajtóra, amiről a törölt adatot akarod visszahozni, akkor lehúztad az egészet a retyeráton.
(#1696) prucam: A-Z-ben nincs benne a magyar ékezet, mert az ascii/utf-8 kódja kívül esik ezen a tartományon. ebbe csak az angol abc nagybetűi tartoznak bele.
echo "1349'45934" | tr -d "'"
echo "1349'45934" | sed -e "s/'//"a tr-ben macskaköröm-aposztróf-macskaköröm van. (falusiasan: idézőjel-aposztróf-idézőjel)
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Jester01
veterán
Megfelelő locale beállítás mellett elvileg az alnum osztályban benne kell legyenek az ékezetes betűk is. Ha nem, akkor fel kell őket sorolni. Az aposztrófot pedig úgy a legegyszerűbb beletenni ha dupla idézőjelre váltunk:
sed "s/[[:alnum:]']//g; s/\(.\)/\1\n/g" abc | sort -u
[ Szerkesztve ]
Jester
-
Új hozzászólás Aktív témák
- Windows, Office licencek a legolcsóbban, egyenesen a Microsoft-tól - 2990 Ft-tól!
- Steam, Windows, Origin kulcsok, előfizetések közvetlenül a kiadótól, a LEGJOBB ÁRON!
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! LEGOLCSÓBB! Automatikus 0-24
- Eladó Steam kulcsok kedvező áron!
- Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!