- Átlépi végre az iPhone az 5000 mAh-t?
- Telekom mobilszolgáltatások
- Google Pixel topik
- Garmin Forerunner 255 Music - nem csak futóknak
- 200 megapixeles zoomkamerát sem kap az S26 Ultra?
- Android alkalmazások - szoftver kibeszélő topik
- Netfone
- Realme GT 2 Pro - papírforma
- Friss koncepciót hoz a Nothing Phone (3)
- Nothing Phone (2) - több, mint elsőre látszik
Új hozzászólás Aktív témák
-
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
-
bambano
titán
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)
-
prucam
tag
-
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.......| -
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?
-
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
-
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
-
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) -
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.
-
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
-
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" -
-
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
-
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...
-
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
-
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.
-
bambano
titán
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.
-
Speeedfire
félisten
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. -
bambano
titán
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.
-
Speeedfire
félisten
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. -
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 -
Speeedfire
félisten
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. -
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.
-
Speeedfire
félisten
Erre nekem miért írja, hogy túl sok argumentum?
if [ [ $IF_FILE_PROCESSED -eq "0" ] && [ $IF_FILE_ERROR -eq "0" ] ];
[: too many arguments
-
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 !!
-
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.
Új hozzászólás Aktív témák
Hirdetés
- Eredeti Microsoft termékek - MEGA Akciók! Windows, Office Pro Plus, Project Pro, Visio Pro stb.
- Eladó Steam kulcsok kedvező áron!
- Microsoft licencek KIVÉTELES ÁRON AZONNAL - UTALÁSSAL IS AUTOMATIKUS KÉZBESÍTÉS - Windows és Office
- Bontatlan - BATTLEFIELD 1 Collectors Edition - Játékszoftver nélkül
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Apple iPhone 14 128GB, Kártyafüggetlen, 1 Év Garanciával
- Bomba ár! Dell Latitude 5500 - i5-8GEN I 8GB I 256SSD I HDMI I 15,6" FHD I Cam I W11 I Garancia!
- 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!)
- ÁRGARANCIA! Épített KomPhone i5 13400F 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Intel Core i9 9900K 8 mag 16 szál processzor garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest