- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
- Melyik hordozható audiolejátszót (DAP, MP3, stb.) vegyem?
- Mini-ITX
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen egeret válasszak?
- A jövőben nem csak a gazdagok kiváltsága lehet az Intel CPU-k tuningja
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Dell notebook topic
- Milyen széket vegyek?
- OLED monitor topic
-
2600 - 2501
2923 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
bambano
titán
-
Keem1
veterán
Megvan a hiba forrása!
exclist=$(printf -- "--exclude='%s'\n" "${excludes[@]}")A fentivel nem megy, ha kézzel írom be a tar commandba, akkor megy.
Nem... mégsem az. Ha a scriptből kiechozom a commandot, és kézzel futtatom, akkor működik. Ha a scriptet használom, akkor nem.

Nem megy:
tar -cvf ${path_archive} ${exclist} ${dirlist}Megy:
echo "tar -cvf ${path_archive} ${exclist} ${dirlist}"
majd Ctrl+C, konzolba Ctrl+V -
bambano
titán
-
Keem1
veterán
Hmm... kézzel megy, scriptben nem

juliska@pistacio:~ $ tar --exclude='home/juliska/tmp' -czf /media/hdd/backup/pistacio.tar.gz /home/juliska/*
tar: A kezdő „/” eltávolítása a nevek elejéről
tar: A kezdő „/” eltávolítása a közvetlen linkek céljaiból
juliska@pistacio:~ $ tar -tf /media/hdd/backup/pistacio.tar.gz
home/juliska/samsung_860evo_250gb_01.png
home/juliska/samsung_860evo_250gb_02.png
home/juliska/samsung_860evo_250gb_03.png
juliska@pistacio:~ $És exclude nélkül benne is van a tmp:
juliska@pistacio:~ $ tar -czf /media/hdd/backup/pistacio.tar.gz /home/juliska/*
tar: A kezdő „/” eltávolítása a nevek elejéről
tar: A kezdő „/” eltávolítása a közvetlen linkek céljaiból
juliska@pistacio:~ $ tar -tf /media/hdd/backup/pistacio.tar.gz
home/juliska/samsung_860evo_250gb_01.png
home/juliska/samsung_860evo_250gb_02.png
home/juliska/samsung_860evo_250gb_03.png
home/juliska/tmp/
home/juliska/tmp/teszt.txt
home/juliska/tmp/addon.xml
home/juliska/tmp/131927106_711033053173709_564839630427467469_n_711033049840376.jpg
home/juliska/tmp/20210117_201722.jpg
juliska@pistacio:~ $ -
Keem1
veterán
Gyártottam egy juliska usert, abban csináltam egy tmp foldert és beleraktam pár teszt filet.
Kérhetek erre egy tar commandot, aminek a targetje: /media/hdd/backup/pistacio.tar.gz és a /home/juliska foldert tömöríti és a /home/juliska/tmp foldert excludálja? Kipróbálnám.
Képtelen vagyok elengedni ezt...

Kiindulási állapot:
juliska@pistacio:~/tmp $ ls -al
összesen 3160
drwxr-xr-x 2 juliska users 4096 márc 11 15:06 .
drwxr-xr-x 3 juliska users 4096 márc 11 15:06 ..
-rwx------ 1 juliska users 102337 jan 1 05:50 131927106_711033053173709_564839630427467469_n_711033049840376.jpg
-rwx------ 1 juliska users 3112977 jan 17 20:17 20210117_201722.jpg
-rwx------ 1 juliska users 827 nov 12 2017 addon.xml
-rwx------ 1 juliska users 10 febr 7 10:41 teszt.txt
juliska@pistacio:~/tmp $ uname -a
Linux pistacio 5.10.17+ #1403 Mon Feb 22 11:26:13 GMT 2021 armv6l GNU/Linux
juliska@pistacio:~/tmp $ tar --version
tar (GNU tar) 1.30
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Írta: John Gilmore és Jay Fenlason.
juliska@pistacio:~/tmp $ -
bambano
titán
-
Keem1
veterán
Hmm...
Ez abban az esetben is érvényes, ha a tar file abszolút útvonallal van megadva?Nálam ez van a script elején:
devicename=$(hostname)
path_archive="/media/hdd/backup/${devicename}.tar.gz"Direkt pont az ilyenek miatt igyekeztem mindenütt abszolút path-t használni relatív helyett. Ez se segít a helyzetemen?
-
bambano
titán
gyökérnek nevezhető az is, ahonnan a tar parancsot indítod.
ha azt írod, hogy tar cvf akarmi.tar /home/juliska, akkor a tar valószínűleg le fogja venni a kezdő /-t és a tarfájlba már home/juliska kezdettel kerülnek be a fájlok. ezért ha excludálod a /home/juliska/tmp-t, akkor arra nem illeszkedik a kizárás. szerintem ilyenkor a home/juliska/tmp-t kell excludálni.
-
Keem1
veterán
"ugyanabból a gyökérből csinálod meg a fájlneveket, mint ahonnan a tar-t indítod"
Ennek az értelmezésével picit gondban vagyok
Eddig azt hittem, Linuxon csak egy gyökér van (a "/").
Abszolút útvonalat adtam meg, mindkét tömbben. A tömörítendő folderek tömbjében van pl.: "/home/"
És ehhez kapcsoódik a kivételek tömbjében: "/home/juliska/tmp", hogy ennek a usernek a tmp foldere ne kerüljön bele. Belekerül.Most alapvetően leszűkítettem 1-1-re a tömbök tartalmát, ameddig ez nem megy, a többi elemet hiába teszem bele:
declare -a directories=(
"/home/juliska"
)
declare -a excludes=(
"/home/juliska/tmp/*"
)
dirlist=$(printf "%s\n" "${directories[@]}")
exclist=$(printf -- "--exclude='%s'\n" "${excludes[@]}")
tar ${exclist} -czf ${path_archive} ${dirlist}Ez eddig a commandom, ami mindenféle hibaüzenet nélkül végrehajtódik, el is készül a tar file, de a tmp folder ugyanúgy ott figyel benne.
-
bambano
titán
"fogalmam sincs, mi a problémája.": például lehet az, hogy nem ugyanabból a gyökérből csinálod meg a fájlneveket, mint ahonnan a tar-t indítod.
csináld meg a tar file-t, mindegy, hogy jól vagy rosszul, majd utána listázd ki azokat a fájlokat a tarból, amiknek nem kellene benne lenni. majd nézd meg, hogy az exclude tömbben a fájlok ugyanúgy vannak-e és ugyanaz-e a könytáruk is.
ha nem boldogulsz, inkább rakd be egy temporális fájlba az excludálni valókat és -X -szel szedd ki.
-
Keem1
veterán
Segít, köszönöm, ez a megoldás
A command így az lesz, amit várnék, de sajnos nem működik. Nincs hibaüzenet, csak egyszerűen nem veszi figyelembe, hogy excludálni kéne. A parancs lefut, végre is hajtja, de mintha az exclude ott se lenne.
Nem jöttem még rá az okára, pedig próbáltam első paraméterként rögtön a tar után, próbáltam a multikapcsolók után és a célfájl után is. Mindegyik esetben végrehajtódik, szépen el is készül a kb. 10 GB-os tgz fájl, amiben benne van többek között az a /home/username/tmp folder is, ami az exclude paraméterben meg van adva.Még keresem az okát, de egyelőre nem jöttem rá. A helyzetet az nehezíti, hogy mivel nincs hibaüzenet, fogalmam sincs, mi a problémája.
-
Keem1
veterán
Helló emberek. Sajnos rossz topikban kezdtem, de ezt a kérdést tettem fel.
Valaki esetleg tudna segíteni?
Köszönöm!
-
Headless
őstag
-
Fecogame
veterán
-
Headless
őstag
tömbök meg azért nem a legjobbak shellben mert nem fog minden shellben működni az shell specifikus, de ha esetleg egy beépített eszközön akarod futtatni ahol javarészt busybox és ash van ott nem fog lefutni vagy akár ha bsd alatt. ott is lesznek különbséges persze nem lenne egy elfogadott tömbbrendszer de a legközelebb hozzá azzal vagyunk mint amit bambano írt.
-
bambano
titán
-
Fecogame
veterán
-
bambano
titán
a kérdés az, hogy így akarod megoldani a problémát vagy rendesen.
ha így, akkor nézd meg, hogy a bash hogy kezel tömböket.
ha rendesen, akkor kb. így néz ki:cat <<EOFhttp prohardverhttp ezmegazEOF | while read website; do curl ${website} | stb. ; doneaz, hogy tesztbe teszed a kiértékelést, meg =1 meg hasonló bonyolítások, szintén felejtős. A grep rendesen adja vissza a kilépési kódját, tehát:
curl | grep && echo ok -
Fecogame
veterán
Van egy for ciklusom, ami már létező változókon megy végig. A változók végén változik a szám.
pl. w1, w2, w3
Szeretném használni egy curl parancsban, de sehogy sem tudom feloldani:
w1="https://prohardver.hu"w1="https://hardverapro.hu"w3="https://logout.hu"for i in w{1..3}; donumber=${i: -1}[ $(curl -sI "$(echo w${number})" | grep -c 'HTTP/2 200') != "1" ] && echo OKdoneA teljes változó website1 lenne, de ha elé írok egy dollárjelet, akkor a website változót üresnek veszi, és a curl csak az "1"-et kapja meg. echo-val sem sikerült megoldanom. Mi a megoldás?
-
Headless
őstag
Közben sikerült tovább lépnem.
a fő probléma a \n\r sorvégződés volt windowson kezdtem a fájlt....
azután már részletesebb hibaüzenetet kaptam.volt pár különbözőség, date -d helyett -r , find-ban a -printf hiányzott meghekkeltem -exec -el
de a feltétel sem volt jó a -gt
viszont a feltétel továbbra sem stimmel[: 243857: unexpected operator
olyan mintha hiányozna az egyik fele a feltételnek és emiatt hibát dob.de az meg egy constans
UI: megvan...
sed nem támogatja a \t \n stb jelöléseket ami azért elég szomorúegyenlőre fut rendbe.
-
bambano
titán
-
Headless
őstag
sziasztok, átkéne vinnem egy scriptet bash alól zsh (freenas) alá, és errort kapok valamiért
van egy jó kis anyag, hozzá, mik az általános különbségek
pl ami valószínű gond lehet, pl ez
ls * |while read x;do...donevagy vannak feltételem
if [ number1 -gt number2 ];then...else...fivan sima bash integer összeadásom:
$((asd*asd+asd))output redirection
röviden nagyjából ezek vannak, és egy ilyen szintax erroral száll el, tehát valamelyik if -ben lehet a hiba.
Syntax error: end of file unexpected (expecting "then")
vagy a fájl kódolása lenne a hiba? utf8. -
I02S3F
addikt
-
Fecogame
veterán
-
I02S3F
addikt
Sziasztok!
Azt jól gondolom, hogy a sdterr-t egy többösszetevős szkriptben érdemes vagy fájlba, vagy a képernyőre kiíratni?
(Például amikor látok egy install szkriptet, például az Anaconda-ét [Linux installere], vagy a Doom3 Linux installere, vagy a VBoxGuestAdditionLinux-é, mintha mind printelne a képernyőre hibát, ha van. Az nem ez? Az nem a stderr képernyőre printelése?)
-
sonar
addikt
-
sonar
addikt
Sziasztok,
expect topik hiányában postolnák ide egy kérdést
a
get System.*parancsot szeretném elküldeni, de sehogy se akar összejönni.
A login megy, entereket is elküldi, de még egyinfoparancsot se fogad.
Persze kézzel lefuttatva minden müxik.
Van vkinek tippje, hogy mi lehet elbaltázva?set ipaddress [lindex $argv 0]spawn telnet 172.30.108.92spawn telnet $ipaddressexpect "Enter Login:"send "admin\r"expect "Enter Password:"send "$env(PWD)\r"expect "pdu#0>"send "\r"expect "pdu#0>"send "info"#send -- "get System\.*"send "\r" -
Jester01
veterán
-
bambano
titán
vagy temp fájl, vagy megoldod, hogy a riportoló szkript semmi mást ne írjon ki, csak ezt az adatot, és azt használod utána valahogy így:
tempfile=$(reportoloszkript.sh)
másik verzió: a tempfájl útvonalát a hívó szkriptben határozod meg, és átadod a riportolónak, és az azt használja.
-
RedHarlow
aktív tag
-
bambano
titán
-
RedHarlow
aktív tag
Sziasztok, van egy riportoló scriptem (lefut benne egy sql, készül egy csv, kimegy e-mailben majd logol). A kimeneti csv útvonala el van mentve a scriptben egy változóban, ezt az változót szeretném használni abban a scriptben ami meghívja magát a riportoló scriptet azonban sehogyse jön össze. Tudnátok segíteni mi lehet a gond? A neten ezt a megoldást találtam de nem működik:
Ezt írtam a riportoló script végére:
export OUTPUTEzt pedig a meghívó scriptbe:
echo $OUTPUT -
tordaitibi
veterán
-
Siriusb
veterán
Nálam Arch Linux + KDE van, teljesen jól működik a fenti megoldás.
No de az a lényeg, hogy meg tudtad oldani. -
Jester01
veterán
Ugye van 2 függvény, a wait az simán vár 10 másodpercig, a monitor pedig lekérdezi a monitor állapotát. A főprogram először addig pörög amíg a monitor be van kapcsolva. Megnézi az állapotot, vár 10 másodpercet, megint megnézi és így tovább. Ha egyszer kikapcsoltnak látja a monitort átlép a második részbe ami hasonlóan működik de arra vár, hogy visszakapcsoljon a monitor. Ekkor lefut az általad adott parancs és kezdődik minden előlről.
-
tordaitibi
veterán
Ezen már túl vagyok, többször is, Manjaro, Mint és Debian alatt nem működik. Ezért a mostani Ubuntun bele se fogtam mert felesleges, ezért kerestem automatizált más megoldást.
Nem emlékszem már hogy pont ilyenek voltak de a default.pa szerkesztgetésére többször is emlékszek.Ez a pc bele van szerelmesedve a belső Analóg sztereo kimenet-be.
Nem disztrófüggő, néha túlél egy session alatt 8-10 monitor off-on-t is, máskor boot utáni első alvás-visszatérésnél elfelejti a hdmi-t.
Jól látod ez egy beépített hangszórós monitor.Viszont,
Jester01,
tökéletesen jól működik a szkripted.
Annyit csináltam hogy az először próbának az asztalon létrehozott .sh fájlt töröltem, majd miután Te állítottad hogy nálad nem húzza a procit, létrehoztam a /home/sajatnevem/ alatt, innen megy pár általam használt szkript, némelyik autostartos (már ez is az), másokra bill-kombó és panel ikon mutat.
És tökéletes! Szerintem valamit a copy-paste során követhettem el, hogy mit azt már így nem tudom megmondani.Mégegyszer köszönöm.
Ha esetleg valami amatőrnek való szájbarágós leírást adnál, mi és hogyan működik ebbe az egyszerű pár soros szkriptbe, azt is nagyon megköszönném. -
Siriusb
veterán
Én más irányból közelíteném meg:
https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#No_HDMI_sound_output_after_some_time_with_the_monitor_turned_off
Röviden, az alábbi load-module sor tiltva legyen:/etc/pulse/default.pa### Should be after module-*-restore but before module-*-detect#load-module module-switch-on-port-available
Így működni fog a beépített hangszóró a visszakapcsolás után is. (Feltételezem ez a probléma, amit meg akarsz oldani). -
bambano
titán
-
Jester01
veterán
Nálam jó. Nem tudom mi lehet. Tegyél be valami echo OK-t a wait függvénybe, azt 10 másodpercenként kellene kiírni. Esetleg próbáld ki simán parancssorban hogy sleep 10 && echo OK annak 10 másodperc után kell megjelennie. Lehet, hogy a sleep nálad nem úgy működik
-
tordaitibi
veterán
-
Jester01
veterán
Elvileg a sleep 10 miatt 10 másodpercig vár, szóval nem pörgetheti a procit. Lehet hogy a te shelled nem szereti a wait nevet (mivel az egy beépített parancs is). Nevezd át valamire.
-
tordaitibi
veterán
Nagyon szépen köszönöm hogy foglalkozol a megoldással,
viszont nem jó.
Halvány sejtésem sincs, mit csinál a szkript, milyen körkörös folyamatokat hajt végre de amikor elindítom azonnal 60% lesz a procihasználat, és amíg killel ki nem lövöm, addig ennyi.
Viszont a többszöri tesztelések után se kapcsolja vissza a hdmi audiot.
Ez lenne cél ha a monitor visszajön alvásból, ez a
pactl set-card-profile 0 output:hdmi-stereo -
RedHarlow
aktív tag
-
Jester01
veterán
#! /bin/bashfunction wait{sleep 10}function monitor{xset q | grep -q "Monitor is On"}while truedowhile monitordowaitdonewhile ! monitordowaitdonepactl set-card-profile 0 output:hdmi-stereodone -
tordaitibi
veterán
Sziasztok, feltettem máshol a kérdést és ide irányítottak.
Az lenne az elképzelésem,
a monitor elmegy alvóba, ez nálam 10 perc, a Képenyő kikapcsolása.
Majd amikor megmozgatom az egeret vagy más aktivitásra a monitor ébred, és ekkor le kéne futnia apactl set-card-profile 0 output:hdmi-stereo
parancsnak.Keresgéltem de lehet nem jó úton járok.
Addig eljutottam hogy a képernyő (monitor) állapotát így le lehet kérdezni:tibi@TibiXubuntu:~$ xset -q |grep MonitorMonitor is Ontibi@TibiXubuntu:~$ sleep 10 ; xset -q |grep MonitorMonitor is OffA sleep 10 azért kellett a teszthez hogy az enter lenyomása után el tudjam küldeni a monitort alvóba az xset dpms force off paranccsal.
És jól működik mert a sleep utáni sor grep kimenetbe ott a Monitor is Off.
Ezt lefuttatgatva mondjuk 10 másodpercenként, ha a kimenet Off akkor értelemszerűen semmit nem kell csinálni, de ha átvált ON-ba, akkor egyszer le kéne futni apactl set-card-profile 0 output:hdmi-stereo
parancsnak.
De csak 1x, és utána nyugalom, a következő Off-On váltásig.Egyáltalán jó az ötlet, vagy hamvába holt?
Ha jó akkor viszont ennek a kivitelezése meghaladja a képességeimet, nem vagyok a szkript írás magyar bajnoka, tudna valaki adni egy kezdő kökést? -
Jester01
veterán
-
Headless
őstag
Amit bambano írt az ezzel a verzióval is kivitelezhető, ott egyedül az a gond, ha véletlenül a </User> szerepel egy CDATA-ban akkor onnantól kezdve hibás adatsorod lesz.
röviden törölsz minden újsort, pl: tr -d "\r\n" , <\User> delimiterrel szétdarabol új sorokra utána greppel már úgy szűrheted ahogy akarod.
-
RedHarlow
aktív tag
Arra gondolsz, hogy a user tageken belül fix ugyan annyi tagnek kell lennie minden usernél? Ez sajnos lehet nem így van, mivel ha 2 notification-t is kapott az ügyfél akkor ha jól rémlik az plusz egy taget jelentett neki. :/
Valahogy így (a kipontozott rész azt akarja jelenteni, hogy sok másik tag):
<User>
...........................
<NotificationID> 4</NotificationID>
<NotificationID> 2</NotificationID>
..............................
</User> -
Jester01
veterán
-
RedHarlow
aktív tag
Először is nagyon szépen köszönöm a tippeket.
Mi a különbség a parsolás és a csplit között?
Hogy mit is akarok csinálni:
Minden nap létrejön egy xml fájl a szerverem, amiből nekem ki kellene szednem azokat a "usereket" akiknél a notificationid tagek között 4 szerepel. Mivel mi csak velük oldagoznánk. A további felhasználást azonban egyelőre nem kérdeztem meg, hogy valid xml-re lenne-e szükség vagy csak az adatok a fontosak.Ha több száz user van egy xml-ben, a csplit létrehoz több száz fájlt? Én alapjáraton abban reménykedtem, hogy valami grep szerűséggel rá tudok szűrni és az eredményt simán el tudom menteni egy új fájlba.
Hétfő estig valahogy meg kellene oldanom ezt a feladatot.

-
Jester01
veterán
-
dabadab
titán
-
bambano
titán
semennyire.
az egyik verzió, hogy ha van kéznél postgresql, akkor belerakod és azzal szétválogatod.a másik verzió, amit egyszerűbb az az, hogy csplit-tel szétdarabolod az xml fájlt annyi darabra, ahány user szekció van benne, a darabokból kiválogatod, ami kell, és utána összerakod újra.
tehát megoldod, hogy az user záró tag egyedül legyen külön sorban (sed-del két parancs), majd csplit-tel szétvágod a '</User>' delimiterrel.
-
dabadab
titán
-
RedHarlow
aktív tag
Sziasztok,
a segítségeteket szeretném kérni egy olyan shellscript megírásában ami elolvas egy xml-t és azokat az itemeket ahol a <NotificationID> tagek között 4-et talál egy új xml-be másolja. Mennyire bonyolult egy ilyet megírni? Az itemeket a <User></User> tagek választják el egymástól.
Tehát ha
<User>
...........................
<NotificationID> 4
</NotificationID>
..............................
</User> -
ЯΞD
senior tag
-
Headless
őstag
-
ЯΞD
senior tag
-
Sonja
nagyúr
-
bambano
titán
-
Sonja
nagyúr
Van ~300db jpg/png file-om. Mindegyik 3168x2480-as felbontású. Hogy lehetne megoldani, hogy kettébe vágja, és két külön png/jpg file-ba tegye?
Tehát pl. a 3168x2480-as felbontású a.jpg fileból csináljon két 1584x2480-as a1.jpg és a2.jpg-t! -
tjsz
senior tag
-
bhonti
aktív tag
-
tjsz
senior tag
-
Headless
őstag
-
bambano
titán
-
tjsz
senior tag
Sziasztok!
Azt szeretném megoldani, hogy a script-ben használt változók értékét egy log file-ba szeretném kiírni, de csak akkor ha bármelyik értéke változott.
A teszt script:
info1="yes"
info2="no"
file_log=/tmp/script.log
info_curr=""
info_prev=""
function script_log
{
echo "`date +%T` - PID:$$ - $*" >> "$file_log"
info_curr="Info1: $info1, info2: $info2"
if [ "$info_curr" != "$info_prev" ]; then
$info_prev=$info_curr
echo "`date +%T` - PID:$$ - $info_curr" >> "$file_log"
fi
}
script_log Sor1
info1="no"
script_log Sor2A script.log file létrejön, de a script futtatásakor hibát kapok:
root@Pc:/tmp# teszt2.sh
teszt2.sh: line 22: =Info1:: not found
teszt2.sh: line 25: =Info1:: not foundEnnek mi az oka?
Előre is köszönöm! -
Fecogame
veterán
-
cattus
addikt
-
Fecogame
veterán
-
bambano
titán
-
bambano
titán
-
f_sanyee
senior tag
-
dabadab
titán
Sima különbséggel:
#!/bin/bash
PREV=0
MAXDIFF=0
cat x.txt | ( while read NUM ; do
DIFF=$(($NUM-$PREV))
if [ $DIFF -gt $MAXDIFF ] ; then
echo $PREV $NUM $DIFF
MAXDIFF=$DIFF
fi
PREV=$NUM
done ) | tail -1A százalék macerásabb, mivel a bash csak integerekkel tud számolni, ott meg kell hívni valami külső programot számolni (dc, bc, akármi) illetve figyelni, hogy ne akarj nullával osztani.
-
KrAt
veterán
Egyszer csinaltam hasonlot, elkezdenem cut -d " " -f1 majd f2 stbstb parameterekkel szetszedni a szamokat, valtozokba berakni az egymas melletti szamokat, majd megszamolni a kulonbseget, es ha az nagyobb, mint az elozo kulonbseg, akkor azt is eltarolni egy valtozoban, ha nem, akkor tovabb az f2 f3, majd f3 f4, stbstb..
Biztos van szebb megoldas is, varjunk meg a tobbiekre

-
Fecogame
veterán
Van egy számsorom, pl.
2 3 4 5 10 9 7 8 10
Szeretném a legnagyobb ugrást/kilengést megtalálni, vagyis a fenti esetben a két egymás mellett lévő 5 és 10 értéket. A számok egy fájlban vannak, minden sorban egy szám.
A még jobb megoldás lenne ezt százalékos különbséggel megnézni :)
Logikailag ezt hogy lehetne kivitelezni?
-
snowdog
veterán
-
Draken
őstag
Sziasztok!
Tudtok esetleg ajánlani olyan magyar irományt, aminek tanulmányozásával jobban átlátom/megértem a shell script világát? Másodsorban pedig bármilyen gyakorló oldalt is szívesen fogadok. Köszönöm! -
moltam
tag
-
Fecogame
veterán
-
moltam
tag
Sziasztok!
Egy Armbian Bustert futtató Orange Pi One-on megoldottam, ha megnyomok egy nyomógombot, lefut egy sh script. A nyomógomb feladata lenne, hogy egy szolgáltatást leállítson és elindítson. Ezt 2 nyomógombbal meg tudnám oldani, az egyik olyan scriptet hívna elő, amiben systemctl start xy van, a másikban pedig systemctl stop xy.
Mindenképpen egy gombbal szeretném megoldani. A lényeg, hogy legyen egy sh script, amit ha futtatok megnézi, hogy fut-e xy service, ha fut akkor leállítja, ha nem akkor elindítja.
Sajnos nem tudok még önállóan ilyesmit megírni, és példát sem találtam. Van valakinek ötlete? -
Fecogame
veterán
-
dabadab
titán
Valamiért nem működik, invalid context length argumenthibát ad a grep.
Azért, mert az iptablesben lévő -A-ról azt gondlja, hogy az neki szól

Erre az az általános megoldás, hogy az ember mond neki egy duplakötőjelet, onnan tudják a programok, hogy a továbbiakban nem lesz kötőjellel kezdődő paraméterük.grep -F -- "iptables -A INPUT -m state --state INVALID -j DROP"
Sajnos nem, break nélkül újra megkérdezi
De, a ;; breakeli a switchet, csak egyrészt bashban a switchet nem kell (és nem is lehet) expliciten breakelni, másrészt meg te ott a do-t akarod breakelni

Nem értem pontosan mire gondolsz itt.
Azt, hogy az ilyen scripteket nem a root home-jába illik telepíteni, hanm az /usr/local/sbin-be.
-
bhonti
aktív tag
Mondom: fgrep "akármi" hely
Ekkor nem mintaként tekint az "akármi" kifejezésre, hanem mint szót keresi meg... -
Fecogame
veterán
Váó, köszönöm a sok segítséget
Sorban:Menü rendszer átvariálva, az észrevételek teljesen jogosak
Most már változókkal dolgozik a script. Teljesen abban voltam, hogy a case-ból kilépve elfelejti a belsejében definiált változókat.A cron bejegyzés immáron az /etc/cron.d/ mappába kerül, és onnan is törli ki a fájlt uninstall-nál. Ésszerűbb, egyszerűbb, biztonságosabb. Jó észrevétel
a dirname $0/basename $0 az, szerintem, $0.
Így van. Javítva
Tök jó lenne, ha ezt paranccsorból is meg lehetne adni, mert mondjuk .deb csomagot így elég nehéz csinálni belőle
Erre holnap ránézek.ja, és uninstallkor ezeket szerintem illene kiszedni az iptablesből.
Jogos. Ezt is holnap megnézem hogyan lehet egyszerűen kivitelezni.és ha jól emlékszem, case-hez shellben nem kell külön break, a ;; megoldja.
Sajnos nem, break nélkül újra megkérdezi, hogy mit szeretnék választani az étlapról és nem ugrik tovább.A harmadik sorhoz: ennek egyrészt az /usr/local/sbin-ben lenne a helye...
Nem értem pontosan mire gondolsz itt.a grepnek van egy -F kapcsolója...
Valamiért nem működik,invalid context length argumenthibát ad a grep. -
bhonti
aktív tag
-
dabadab
titán
Az iptableses részhez:
a grepnek van egy -F kapcsolója, ami kikapcsolja a regexpezést és akkor nem kellenek a backslashek, így aztán a komplett utasítást belerakhatod egy változóba, nem kell kétszer leírnod (mert előbb-utóbb biztos elírod az egyiket
)szerk: ja, és uninstallkor ezeket szerintem illene kiszedni az iptablesből.
-
dabadab
titán
A /var/spool/cron/crontabs/root első sora nálam (meg valószínűleg kb. minden unixon
) ez:# DO NOT EDIT THIS FILE - edit the master and reinstall.
Ha crontabot akarsz installálni, akkor azt inkább úgy csináld, hogy rakj egy file-t az /etc/cron.d/-be. Nagyon ősi Linuxokon nem fog menni, de azokon lehet, hogy iptables sincs

-
bambano
titán
ez a 101-102 sorok se tetszenek...
a dirname $0/basename $0 az, szerintem, $0.
de az idézőjeleket úgy nem lehet egymásba ágyazni szerintem.szerk: ha matatod a fájlrendszerben a root crontabját, akkor a cron-t illene újraindítani. de, szerintem nem így kellene matatni, hanem a /etc/cron.d alá berakni egy saját crontabot és azt törölni uninstallkor.
-
dabadab
titán
Az opcióválasztáshoz:
1. Tök jó lenne, ha ezt paranccsorból is meg lehetne adni, mert mondjuk .deb csomagot így elég nehéz csinálni belőle

2. Ez a file-os megoldás elég... khm
Egyrészt nem biztos, hogy működik (pl. mi van, ha read only fs-en van?), meg az se jó, hogy szó nélkül töröl file-okat, ráadásul olyanokat, amiknek nincs túl egyedi neve (ha mindenképpen file-t akarsz használni, akkor érdemes egyrészt a /tmp-ben csinálni, másrészt a filenévhez hozzácsapni legalább a PID-et, de akára hostname-et is - pl. /tmp/akarmi.$HOSTNAME.$$ )Viszont erre nincs szükség, egyszerűen rakd bele egy változóba:
PS3='Please enter your choice: '
options=("Install" "Uninstall" "Verify" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Install")
SEL=1 && break
;;
"Uninstall")
SEL=2 && break
;;
"Verify")
SEL=3 && break
;;
"Quit")
break
;;
*) echo "invalid option $REPLY";;
esac
done -
bambano
titán
-
dabadab
titán
-
bambano
titán
-
Fecogame
veterán
Első GitHub projektem, kérnék építő jellegű kritikát, a topik témájából fakadóan főleg a kódra nézve

-
Jester01
veterán
-
klambi
addikt
Szevasztok!
Egyszerű kérésem lenne: grep-el keresek fileokban egy részletet, és ki szeretném exportálni ezeket egy külön text fileba külön elérésre, de az eredeti file nevével. export nem gond ha egy fileba kell irányítani, de külön külön más más névvel már bajban vagyok

-
sonar
addikt
Új hozzászólás Aktív témák
-
2600 - 2501
2923 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Hirdetés
- Targus DOCK423A - USB-C Dual HDMI 4K HUB - 2 x HDMI (120Hz)
- BESZÁMÍTÁS! VALVE Steam Deck LCD 512GB SSD kézikonzol garanciával hibátlan működéssel
- AKCIÓ! MSI Cyborg 15 A12VF FHD GAMER notebook - i5 12450H 16GB DDR5 512GB SSD RTX 4060 8GB
- ÚJ Lenovo ThinkPad X13 Gen 5 - 13.3" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
- Samsung Galaxy S22 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest





Köszönöm!





