-
2923 - 2801
2923 - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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
-
Penty
aktív tag
-
Fecogame
veterán
Ezt próbáld meg (nem próbáltam ki, AI írta a kódot)
#!/bin/bash
TIMEOUT=10
last_change=$(date +%s)
while true; do
current="$(xsel -ob 2>/dev/null; xsel -op 2>/dev/null; xsel -os 2>/dev/null)"
if [ -n "$current" ]; then
now=$(date +%s)
# ha változott a vágólap, új időbélyeg
if [ "$current" != "$prev" ]; then
last_change=$now
prev="$current"
fi
# ha TIMEOUT mp eltelt változás nélkül → törlés
if (( now - last_change >= TIMEOUT )); then
xsel -cb
xsel -cp
xsel -cs
notify-send "A vágólap(ok) törölve."
prev=""
fi
fi
sleep 1
done -
Penty
aktív tag
Sziasztok!
A vágólapok tartalmát szeretném X mp-enként kitakarítani, szóval egy egyszerű kis vágólapot törlő scriptre lenne szükségem. Eddig ezt sikerült összehoznom. Az i3wm config indítja a gép indításánál.
Jelenleg ugye úgy működik, hogy ha valami bekerül a vágólap(ok)ra, akkor megszakad a while loop, vár 10 mp-et, majd törli a vágólapok tartalmát.
Az vele a baj, hogy ha pl. 7 mp-nél ismét bekerül valami a vágólapra, akkor nem kezdi újra a számlálást, hanem 3 mp-cel később törli a másodjára bekerült dolgot.
Hogyan lehetne megoldani, hogy ilyenkor újra kezdődjön a visszaszámlálás a törlésekig?
Esetleg valami más egyéb javítani való? Nem vagyok egy nagy bash mágus...#!/bin/bashwhile [ -z "$(xsel -ob)" ] && [ -z "$(xsel -op)" ] && [ -z "$(xsel -os)" ]; dosleep 1donesleep 10xsel -cbxsel -cpxsel -csnotify-send "A vágólap(ok) törölve."$0 & -
bambano
titán
-
zsoltip
őstag
Üdv Fórumtársak!
Korábban működött a még P51S Lenovo fórumból származó, majd AHK1-re, majd általam AHK2-re átírt billentyűzet világítás kezelés. Mostanra viszont nem működik. Arra gondoltam visszamegyek egy egyszerű PS1 szkriptre, de nem sikerül megírjam ChatGPT-vel sem, nem, hogy saját kútfőből.
Megoldást kresek arra, hogy a Lenovo ThinkPad T16, P53, T460, E16 és egyéb gépeim billentyűzet háttérvilágítása:
- megadott fényerőszinten (1), bekapcsoljon, ha interakció van bill. lenyomás, egér mozgatás, trackpoint vagy trackpad érintés által
- kikapcsoljon 15 sec múlva
- ne jelenjen meg OSD üzenet a világítás be/kikapcsolására
((Ezt korábban lehetett szabályozni a Gépház, Rendszer, Kijelző, Speciális, Képernyő-illesztőprogram tulajdonságai alól; egy egyszerű OSD kikapcsoló négyzettel. De mára már (Windows 11 Pro 24H2) nem létezik.))Valaki meg tudná írni innen?
-
sto1911
veterán
-
KrAt
veterán
-
dabadab
titán
-
szuszinho
őstag
-
szuszinho
őstag
-
KrAt
veterán
-
dabadab
titán
-
szuszinho
őstag
-
KrAt
veterán
-
dabadab
titán
-
szuszinho
őstag
-
dabadab
titán
-
Fecogame
veterán
-
szuszinho
őstag
Sziasztok,
A következő scriptet hívom meg cron segítségével, de csak a tömörített fájl jön létre. A törlés sosem, még
-deletekapcsolóval sem:#!/bin/bashd=$(date +%Y_%m_%d)zip -r /path_$d.zip /ezt/find /path -type f -mtime +15 -exec rm {} \; -
Headless
őstag
-
dabadab
titán
-
Fecogame
veterán
Ez miért van így, és hogyan lehetne megoldani? Hiszen végeredményben a "continue" egy while loop-ban van, nem is csak egy if szerkezetben.
A példascript:
#!/bin/bashfunc() {ls /tmp/eznincsitt || continue}while true; doif [ "1" -eq "1" ]; thenfuncfiexitdonebash -x futtatás eredménye:
+ true+ '[' 1 -eq 1 ']'+ func+ ls /tmp/eznincsittls: cannot access '/tmp/eznincsitt': No such file or directory+ continue/tmp/test.sh: line 4: continue: only meaningful in a `for', `while', or `until' loop+ exit -
Penty
aktív tag
-
bambano
titán
-
Penty
aktív tag
...a tartalmát minden nap áthelyezem egy "archiv" mappába. A mappa neve, amibe áthelyezem az aktuális dátum.
PL:
/media/backup/winscp/trash
/media/backup/winscp/trash_archive/20240628Nekem ebből az jön le, hogy ez nem archívum, hanem egy sima mappa, aminek a trash_archive nevet adta és ezen belül vannak a 20240628, 20240629 stb. nevű almappák és aztán azon belül az aktuális nap trash mentései, akár valami tar.xz, akár csak simán átmásolva, akár más egyéb formában. Így működik az általam vázolt script, mivel törli a legkisebb nevű, vagyis a legrégebbi mappát, benne a cuccokkal.
De lehet, hogy én értelmeztem félre a dolgot, ez esetben elnézést.
-
bambano
titán
-
Penty
aktív tag
Ha jól látom, a trash_archive/ mappában lévő dátum nevű mappanevek lényegében emelkedő számok (és feltételezem, hogy csak ezek vannak benne):
20240625
20240626
20240627
stb.
Megpróbálhatod egyszerűen csak megszámoltatni és az első 14 legnagyobb nevűt megtartani, majd a legkisebb számút (a legrégebbit) mindig töröltetni egy scripttel.COUNT=$(find /media/backup/winscp/trash_archive/* -type d | wc -l)
OLDEST=$(find /media/backup/winscp/trash_archive/* -type d | head -1)
if [ $COUNT -gt 14 ]
then
rm -rf $OLDEST
else
:
fiIntegráld bele a mentés scripted elejére a fentit. Ha jelenleg kevesebb mint 14 mentésed van, akkor nem fogja 14 (két két) fölé engedi a mentések számát. Ha több, akkor a script csak egyet fog törölni a pl. 35-ből, így elsőnek törölnöd kell kézileg pár mentés mappát, hogy 14 alá csökkenjen a számuk.
-
tjsz
senior tag
-
bambano
titán
valami ilyesmivel próbálkoznék első körben (nyilván még csiszolsz rajta, mielőtt végleges lesz):
for i in $(seq 15 45); dotrdir=$(date '+trash_archive/%Y%m%d' -d "${i} days ago")[ -d $trdir ] && rm -rf $trdirdoneén visszamennék több napot annak érdekében, hogyha véletlenül nem fut le a szkript (ki van kapcsolva a gép, stb) akkor később azt is letörölje.
vagy a könyvtár kreálásakor betenném rögtön betenném a törlést az at queue-ba, oszt jónapot

de lehet olyat, hogy megmondod a find-nek, hogy csak könyvtárakat keressen, és akkor az megoldja. könyvtár + régebbi, mint két hét + név illeszkedik, az már elég pontos lenne.
-
kovbandi82
őstag
A releváns idő, amikor a törlést meg szeretném csinálni, az a mappa létrhozása lenne, mert a benne lévő fájlok sokszor régebbiek is lehetnek, és akkor azt is törölné, amit mondjuk tegnap került oda.
Amit írtál, az megoldás lenne, hogy az X idővel előtti dátumhoz tartozó mappát törölje, azt megpróbálom. -
bambano
titán
-
bambano
titán
lehet bonyolítani a kérdést a dátumokkal, én nem tenném.
elvileg tudsz olyat, hogy adja meg az x idővel ezelőtti dátumot és az ahhoz tartozó mappát törölni.én azt csinálnám, hogy a find utasítás tud creation meg access time szerint keresni, megkerestetném az összes fájlt, ami régebbi, mint két hét, letöröltetném, és utána legyalulnám az üres könyvtárakat.
lehetséges megoldás még, hogy naponta áthelyezed egy olyan mappába, aminek a nevében a nap benne van, és akkor egy hónap után simán felülíródik és nem kell vele foglalkozni.
-
kovbandi82
őstag
Sziasztok. Adott egy Raspberry PI4 Raspberry OS-el (debian bookworm)
Scriptben szeretném a segítségeteket kérni. Adott a winscp "trash" mappa, aminek a tartalmát minden nap áthelyezem egy "archiv" mappába. A mappa neve, amibe áthelyezem az aktuális dátum.
PL:/media/backup/winscp/trash/media/backup/winscp/trash_archive/20240628
Az archiv mappákat szeretném X idő után (legyen pl. 2 héz) törölni tartalmával együtt. Lenne egy olyan script, ami megvizsgálja a mappák létrhozásának a dátumát, és törli, ha régebbi a beállított időnél?
A másik gondom, hogy a samba pi felhasználóval van felcsatolva, viszont pl. ha egy fájl az ftpuser "tulajdona", ahhoz ugye nem fér hozzá, nem tudom törölni. A pi usert beraktam az ftpuser csoportba, de akkor sem. Hogy tudnám ezt kivitelezni, hogy a pi usernek legyen jogosultsága az ftpuser fájlaihoz is? -
vargalex
félisten
Egy nagy file-nál már van értelme. Csináltam egy 15000000 soros teszt file-t (egy sql script tartalmát többszöröztem), 1,5 GB lett (nvme ssd-n van a file):
[gavarga@gavarga-5500 migration]$ time awk '/Foglal/' test.sql > /dev/null
real 0m2,711s
user 0m2,493s
sys 0m0,214s
[gavarga@gavarga-5500 migration]$ time grep Foglal test.sql > /dev/null
real 0m0,005s
user 0m0,001s
sys 0m0,005sItt mondjuk valószínűleg túl okos a rendszer, ezért valójában lehet, hogy nem is történik grep.
File-ba írással:
[gavarga@gavarga-5500 migration]$ time awk '/Foglal/' test.sql > test_awk.result
real 0m2,782s
user 0m2,515s
sys 0m0,214s
[gavarga@gavarga-5500 migration]$ time grep Foglal test.sql > test_grep.result
real 0m1,032s
user 0m0,901s
sys 0m0,130sA 2 file természetesen azonos lett:
[gavarga@gavarga-5500 migration]$ sha256sum test_*
c8aa4496d92f75d57b66b0148de6ba5247c3dd7000707d5107f01283fa8246bc test_awk.result
c8aa4496d92f75d57b66b0148de6ba5247c3dd7000707d5107f01283fa8246bc test_grep.result -
vargalex
félisten
Már lemaradtam a szerkesztésről: a
busyboxés így az abban lévőawka routerén van, nem windows alatt... Windows alatt GNU awk van nála. -
vargalex
félisten
Van egy Windows 7-em virtuális gépben. Arra felraktam a gawk for windows és a grep for windows gnuwin32 alkalmazásokat. Az awk verziója:
D:\>awk --version
GNU Awk 3.1.6
Copyright (C) 1989, 1991-2007 Free Software Foundation.A grep verziója:
C:\>grep --version
GNU grep 2.5.4
Copyright (C) 2009 Free Software Foundation, Inc.Az escape-os verzió tökéletesen működik:
D:\>grep "^CLIENT_LIST" status.txt | awk -F, "{print sprintf(\"%-23s%-25s%-20s%s
\",$8,$3,$10,$13)}"
2024-06-25 23:53:12 192.168.1.111:40175 joskapista AES-256-GCM
2024-06-25 23:53:12 192.168.1.10:40175 gizi AES-256-GCM
2024-06-25 23:53:12 192.168.1.2:40175 nagyonhosszunevu AES-256-GCMSzerk.:
#2881 galaxy55: igen, ezt olvastam és ezért én tegnap raktam fel egy OpenVPN-t a windows 7 virtuális gépre, de az nem rakott fel sem grep-et, sem awk-t. -
vargalex
félisten
-
vargalex
félisten
Windows hiányában nekem más ötletem nincs. A probléma ugye az, hogy a Windows-os awk az aposztrófot nem eszi meg, az idézőjelet pedig awk-n belül nem a fenti módon lehet escape-olni (ha egyáltalán lehet). A tabulátor sajnos nem jó megoldás, mert a nagyon különböző hosszúságú értékek esetén el fog csúszni. A hossztól függően kellene 1, vagy 2 tabulátort tenni.
-
tjsz
senior tag
-
vargalex
félisten
Nincs windows-om, de talán még ezzel próbálkoznék:
grep "^CLIENT_LIST" status.txt | awk -F, "{print sprintf(\"%-23s%-25s%-11s%s\",$8,$3,$10,$13)}"A cat-ot kivettem, mert teljesen felesleges subprocess lesz belőle.
Ha nem megy, akkor a következőt tedd be pl. egy
script.awknevű file-ba:{print sprintf("%-23s%-25s%-11s%s",$8,$3,$10,$13)}Majd a futtatás:
grep "^CLIENT_LIST" status.txt | awk -F, -f script.awk -
Penty
aktív tag
-
tjsz
senior tag
-
Penty
aktív tag
-
Penty
aktív tag
-
Penty
aktív tag
-
tjsz
senior tag
-
Penty
aktív tag
-
tjsz
senior tag
-
tjsz
senior tag
-
vargalex
félisten
-
vargalex
félisten
A routeren busybox-os awk-s parancsa fut le rendben...
#2851 tjsz: Egyébként én is az idézőjelekre gondolok (a külsőt én is aposztrófra cserélném), illetve ahogy a kolléga írja, egyetlen printf is elég az awk-ban. Egyébként ha az AWK már szétbontja oszlopokra, akkor minek egyáltalán printf és oszlop szélesség igazítás? Nem elég így:
cat status|grep "^CLIENT_LIST"|awk -F, '{print $8, $3, $10, $13}' -
tjsz
senior tag
-
bambano
titán
-
sh4d0w
félisten
-
tjsz
senior tag
Sajnos erre is hibát ad.
-W version-re az egyik azt írja, hogy "Gnu Awk 3.1.3"
A másiknál pedig:
root@Router:/tmp/home/root# awk -W version
awk: warning: option -W is ignored
BusyBox v1.36.1 (2023-09-09 05:54:41 CEST) multi-call binary.Usage: awk [OPTIONS] [AWK_PROGRAM] [FILE]...
-v VAR=VALSet variable
-F SEPUse SEP as field separator
-f FILERead program from FILE
root@Router:/tmp/home/root# -
Fecogame
veterán
-
tjsz
senior tag
Sziasztok!
Van egy script-em, ami a status file-ból a megfelelő oszlopokban lévő adatokat listázza (oszlopok hossza is be van állítva):
cat status|grep "^CLIENT_LIST"|awk -F, "{print printf("%-23s",$8), printf("%-25s",$3), printf("%-11s", $10), $13}"
Ugyanezt végre akarom hajtni Win10 alatt (OpenVPN-hez adott cat-tal, grep-pel és awk-val), de ott hibát ad:
awk: cmd. line:1 '{print
awk: cmd. line:1 '{print ^ invalid char ''' in epressionHa ezt akarom végrehajtani:
cat status|grep "^CLIENT_LIST"|awk -F, "{print sprintf("%-23s",$8), sprintf("%-25s",$3), sprintf("%-11s", $10), $13}"akkor pedig ezt kapom:
-25 -11 oszlop13
Ez miért van? Nem teljesen kompatibilis a linux-os és a windows-os awk?
-
cigam
titán
-
Fecogame
veterán
Nem tudom hogy működik ez a githubosdi.
Easy
Röviden:
1., Belépsz a github fiókodba
2., Megnyitod a projektben azt a fájlt, amit magadnál is szerkesztettél. Ez esetben ezt
3., Jobb felül "ceruza", mintha szerkeszteni akarnád
4., Forkolod a repot magadhoz
5., Megszerkeszted a fájlt, majd elmented
6., Beküldöd a pull requestet
7., Kész
-
cigam
titán
Igen a bmdhd.sh szkriptet maszírozom.
Valóban volt benne valami"plusz", Domonkos tippjével kiszűrtem hogy csak a számjegyek maradjanak benne, és így már nem futott hibára.
Viszont itt-ott módosítani kellett, mert valahogy mésképpen értelmezte a kapott adatokat. Tippem szerint a "magnó" kapott pár verziófrissítést az évek alatt, és a válaszok is módosultak itt-ott. pl. a current_time adatai között nincs is ; ,így nem is értem mit csinál a. végén a cut -d';' -f1.
Került bele "túlcsordulás" ellenörzés, mert néha -1mp lett a vége, szóval a menet közben felmerülő problémákat javítgatom.
Lassan már csak a kód kicsinosítása van hátra a publikálás elött. Megpróbálom a pull request-et, bár lehet egyszerübb lenne forkolni, mert közben a html kódon is módosítottam, hogy eltüntesse a böngésző görgetősávjait, így F11-el teljes képernyős módban tisztára natív program kinézete van. A szerző nem reagált a kérdésemre(issue). Lehet "abadonware"? Nem tudom hogy működik ez a githubosdi.Mindenkinek köszönöm segedelmet, és okítást!
-
cigam
titán
-
cigam
titán
Ami fura hogy az echo "${clip_id}" kiírja, hogy 65 (a 65. track-en ál a magnó), de a
total_time=$(echo "$lines" | sed -n "${clip_id}p")
sorra meg panaszkodik, hogy
”ed: -e kifejezés #1, karakter 3: ismeretlen parancs: „
Ha azt írom be, hogy
total_time=$(echo "$lines" | sed -n "65p")
akkor meg rendben kiírja a 65. track hol kezdődik.
Szóval tuti valami szintaktikai hiba, de nem bírok rájönni hogy hol csúszik el a dolog. -
cigam
titán
A grep nem jó, mert a $lines már csak az időpontok listáját tartalmazza, ezért nem lehet rákeresni a clip_id alapján. Tehát a $lines tartalma csak a kezdési időpontot tartalmazza (mint a kazettás magnóknál a számláló állás)
00:00:00:00
00:02:48:00
00:03:28:16
00:06:08:20Ennek a listának az x.edik ($clip_id) elemére vagyok kíváncsi.
Vagyis ha a $clip-id 1, akkor a $total_time értéke 00:00:00:00. Ha a $clip_id értéke 2, akkor a $total_time értéke 00:02:48:00 kellene, hogy legyen.Fecogame
Bár már ott tartanék
-
Fecogame
veterán
-
cigam
titán
Ahaa.... Akkor maga a koncepció működhetne, mert a $output egy "lista" ami minden egyes klip kezdő időpontját mutatja, vagyis attól függően lista/felsorolás, hogy ""-be teszem-e a $lines változót (ezt se nagyon értem, hogy mitőll lesz lista, vagy szóközzel elválasztott felsorolás)
És ennek a listának clip_id által mutatott sorszámát kellene visszaadni, de valamiért üres értéket kapok
Köszi! Holnap ki is próbálom.
-
dabadab
titán
A sed {} paraméteréről nem sokat találtam
Mert az nem is a sednek szól, a
sed -n "${clip_id}p"először átmegy a bashen, ami a${clip_id}-t kicseréli a clip_id változó tartalmára. Viszont ennek így semmi értelme, mert ott a sed egy sorcímzést várna, a clip_id meg nem az, hanem valami string és azokatr a sorokat akarjuk, amiket az tartalmaz.
Cseréld ki a sedes részt egy grepre. A -F azért kell, hogy a clip_id-t ne akarja regexpként értelmezni, csak sima, szó szerinti stringkét, így pl. a pontok meg hasonlók nem okoznak bajt:total_time=$(echo "$lines" | grep -F "${clip_id}" |cut -d';' -f1) -
cigam
titán
A másik topik, kicsit halott, szóval itt próbálkoznék:
Van egy egyszerűnek tűnő projekt, ami már a bash scriptnél elakad:
Az output-ba összegyűjti a tartalomjegyzéket, és az aktuális klipp adatait.# Összegyűjti azokat az időpontokat, hol kezdődnek a klippek, szóközzel elválasztvalines=$(echo "$output" |grep .mov |cut -d' ' -f3)# Kiolvassa az aktuális klip sorszámátclip_id=$(echo "$output"|grep 'clip id'|cut -d' ' -f3)# Kiolvassa hol tart a lejátszáscurrent_time=$(echo "$output" |grep 'display timecode:' |cut -d' ' -f3|cut -d';' -f1)# Ez elméletileg a klip kezdési időpontját adja megtotal_time=$(echo "$lines" | sed -n "${clip_id}p" |cut -d';' -f1)
Ez utóbbival van problémám, mivel nem kap értéket a total_time. Per pillanat ötletem sincs, hogy miért. A sed {} paraméteréről nem sokat találtam. Van valami ötlet pontosan mit csinál ez és miért nem adja vissza az időt?
Saját kútfőből próbáltam máshogy elérni a célt és eddig jutottam:total_time=$(echo $lines | cut -d' ' -f 39)
Ez visszaadja a 39. track kezdés időpntját, de itt is elakadtam.
Atotal_time=$(echo $lines | cut -d' ' -f $clip_id)nem hozott jó eredményt valami \r-re panaszkodik.
Konkrét szám helyett hogy helyettesítsem a $clip_id-vel?
Azecho "lines: " $linesecho "clip id: $clip_id"echo "current_time: $current_time"echo "total time: $total_time"
Kimenetelines: 00:00:00:00 00:02:48:00 00:03:28:16 00:06:08:20 00:09:42:24 00:11:48:09 00:16:04:14 00:18:57:15 00:22:25:13 00:23:08:16 00:23:51:14 00:24:13:12 00:27:16:00 00:30:37:00 00:34:51:13 00:37:14:16 00:39:50:09 00:43:54:11 00:47:19:14 00:48:03:02 00:48:37:01 00:52:35:23 00:55:44:00 00:57:37:07 01:00:30:10 01:03:29:00 01:07:13:03 01:10:47:06 01:14:17:01 01:16:30:19 01:20:26:13 01:22:44:19 01:26:49:20 01:29:26:24 01:32:20:12 01:33:56:08 01:34:34:09 01:38:39:15 01:38:47:12 01:56:52:15 01:56:54:12 02:13:08:22 02:13:44:17 02:15:51:10 02:18:30:10 02:20:35:10 02:22:29:00 02:24:52:01 02:28:14:06 02:31:09:16 02:34:12:04 02:37:51:09 02:39:55:15 02:40:05:14 02:40:35:14 02:41:05:14 02:42:25:14 02:43:12:08 02:49:22:16 02:52:07:03 02:53:59:17 02:55:01:04 02:57:02:12 02:57:54:19clip id: 39current_time: 01:45:09:07total time: 01:38:47:12 -
Fecogame
veterán
-
dabadab
titán
-
Jester01
veterán
-
Fecogame
veterán
ksh-ban hogy lehet dinamikus nevű változót létrehozni/használni? Bash-ban így működik, de ksh-ban nem, és nem találtam rá megoldást:
# cat test.sh#!/bin/basha_2014='hello 2014'year=2014varname=a_${year}echo ${!varname}# ./test.sh# hello 2014 -
Jester01
veterán
-
dabadab
titán
-
vargalex
félisten
-
Penty
aktív tag
-
vargalex
félisten
-
Jester01
veterán
-
Penty
aktív tag
Sziasztok!
Van egy szöveges fájl, benne dátumok, mögöttük feljegyzések, kb. így:2023-02-23 Valami szöveg a múltból
2023-02-28 Valami szöveg a múltból
2023-03-02 Valami szöveg a múltból
2023-03-15 Valami szöveg a múltból
2023-04-28 Valami szöveg a múltból
2023-05-20 Valami szöveg a múltból
2023-05-28 Mai napi szöveg
2023-06-01 Jövőbeni szöveg
2023-06-03 Jövőbeni szövegCsinálnék egy scriptet, ami a múltbéli sorokat törli a fenti fájlból. Eddig jutottam:
#!/bin/sh
NOTES=~/teszt
A=$(date --date="$(awk 'NR==1{print $1}' $teszt)" +%Y%m%d)
B=$(date +%Y%m%d)
if [ "$A" -lt "$B" ]; then
sed -i '1d' $teszt
elif [ "$A" -eq "$B" ]; then
notify-send "$(awk 'NR==1{print}' $teszt)"
else
notify-send "Üresjárati nap"
fiHa lefuttatom a scriptet, szépen kitöröl egyet a régmúlt dátumú sorok közül, ha sokszor futtatom, akkor előbb-utóbb elfogynak a régi bejegyzések, és a két notify-send sor valamelyikét fogja lefuttatni attól függően, hogy van-e mára valami feljegyzés, vagy nincs.
Hogyan lehetne megoldani azt, hogy csak egyszer kelljen a scriptet futtatni, de akkor az összes régi dátumot kitörölje? Gondolom valami while read line; do bla-bla; done kellene, de kicsit belebonyolódtam. -
zsolti.22
senior tag
-
Jester01
veterán
-
zsolti.22
senior tag
Nem áll össze fejben egyelőre és én sem fogalmaztam pontosan. Amit ő írt, annak tudjuk, hogy 4 eleme van és tudjuk, hogy mik az értékei, csak egymás után kell rakni őket egy szeparátorral.
Az előző hszemben pontosítottam: egy while loopban ismétlek egy HTML lekérdezést és egy bizonyos regexppel sed segítségével változóba mentem az értéket. Ez volt a VAR1 mondjuk. És ebből a VAR1-ből hogy lesz for ciklus ahhoz, hogy pseudo-tömb legyen, ha a következő while ciklusban felülíródhat a VAR1 értéke?Kódban, ha akinek így könnyebb (csak szemléltetés végett):
#!/bin/ashwhile [ feltetel]docurl http://valami.html -o valami. htmlVAR1=$(sed - rne 's#. *(regexp). *$#\1#p valami. html)if [ -n "$VAR1" ]thenide kellene a tömbkezelesfidone -
Jester01
veterán
-
zsolti.22
senior tag
Aha, asszem javítanom kell a specifikációmat....(egyébként nekem a \n megmaradt ebben a valójában és nem alakult át enterré, ahogy azt vártam).
Hogy nézne ki a script, ha nem tudom, hogy hány eleme lesz a tömbnek és azt sem, hogy mik lennének az elemei?
Amihez kellene, az az, hogy egy while loopban sed-del kiszedem egy HTML oldal egy bizonyos értékét, amit változóba mentek, legyen VAR1. Szóval a tömb aktuális tartalma mindig ez a VAR1 mögötti érték, de hogy hány ilyen lesz még és mi lesz a tartalma, azt nem tudni előre, viszont jó volna összeszámolni, hogy hányszor sikerült tartalmat kiszedni és hogy mi volt konkrétan a VAR1 értéke és ezeket egymás alá-mellé tenni (IFS-től függően), mint ahogy az első hsz-emben a TOMB-ben. -
dabadab
titán
-
zsolti.22
senior tag
Sziasztok!
Ha ash-ban adott egy tömb és ennek a tömbnek az egyes elemeit ezzel a modszerrel olvasom ki...
#!/bin/ashinit_array() {SZ=0eval ARR=\$${VAR}for i in $ARR; doeval "$VAR$SZ"='$i'SZ=$(( SZ + 1 ))doneeval ${VAR}_SZ=$SZ}TOMB="blablablablablablaaabblabamasik blalblalalsokadik blalblala"IFS=$'\n'VAR="TOMB"; init_arrayfor i in $(seq 1 $TOMB_SZ)doecho "$(eval echo \$TOMB$i)"doneexit 0...akkor hogy csinálom meg a fordítottját, azaz hogyha megvannak az elemeim, de van egy üres TOMB változóm, és ezeket az elemeket szeretném a TOMB "alá" bevinni \n-t használva szeparátorként?
-
fatpingvin
addikt
...amik ugyanazt az interfészt használják mint az ulimit...
-
fatpingvin
addikt
-
f_sanyee
senior tag
-
Fecogame
veterán
Ezt most nem értem... Szeretném egy változót ellenőrizni, hogy tartalmazza-e a "https" részt.
#!/bin/shVAR="https://barmilyenurl.com"[ "$VAR" = *"https"* ] && echo "VAR tartalmazza ezt: https"A kimenet mégis üres. Miért?
-
Jester01
veterán
-
bambano
titán
-
Jester01
veterán
-
kgymac
őstag
-
lombika
csendes tag
-
bambano
titán
-
lombika
csendes tag
Sziasztok
Kis segítséget szeretnék kérni adott egy printserver, amiröl powershell parancsal szeretném lekérni , csak az online pingre válaszoló nyomtatókat , ipcimmel és megosztási névvel, és kiiratva egy txt be v csv beip . Ip tartomany 239,252,254,255,253 ezekböl az összesröl.
Ebben tudtok segíteni ? Milyen parancsal lehet ?Köszi
-
bambano
titán
-
Jester01
veterán
8 bites bináris számot kellene kiírni (rajzolni) csillag és szóköz formában bash beépített dolgok használatával. Jelenleg ez van:
for((i = 128; i != 0; i >>= 1))do[[ $((x & i)) != 0 ]] && echo -n '*' || echo -n ' 'doneViszont nem tetszik, hogy duplán van benne az echo.
Létezik ugyan ?: operátor de az csak számokra működik pedig egy x & i ? '*' : ' ' pont tökéletes lenne. Lehetne indexelni stringet vagy tömböt, de ezeket előzőleg definiálni kell, pl.:chars=' *'echo -n "${chars:$(((x & i)?1:0)):1}"Egyéb ötlet?
Ui.: jót nevettem amikor a script másik részében leírtam, hogy ${rom##*!!?} Ránézésre ki hinné el, hogy ennek van értelme
-
dabadab
titán
Ez nem fork bomb, ahhoz az kellene hogy rengeteg új processzt hozzon létre, de nem tesz ilyet: megvárja, amíg az első sftp befejeződik és csak utána indítja a másikat.
Ettől persze ez még így lassú meg nem hatékony, de nem fork bomb.
A klasszikus minimálforkbomb az pl ez (kedves errejárók, ne próbáljátok meg végrehajtani, mert lefagyhat tőle a gépetek)::(){ :|:& };:
Új hozzászólás Aktív témák
-
2923 - 2801
2923 - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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
- Trollok komolyan
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Diablo IV
- Futás, futópályák
- Milyen TV-t vegyek?
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- OLED monitor topic
- Milyen routert?
- Vészhelyzet: tönkreteheti a Garmin eszközeit a legújabb frissítés
- Az AI átformálja a Peugeot modelljeit is
- További aktív témák...
- Windows 10/11 Home/Pro , Office 2024 kulcsok
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem.
- PC Szervizeket, Gépépítőket keresek B2B szoftver partnerségre (E-számlával)
- HP. Laptop. i5. Model: 15-da1002nq
- ÚJ Lenovo LOQ AMD RYzen 7 7425HS, 16GB, 1TB, RTX 4070(8GB), FHD 144Hz
- Dell Latitude 5310 2-in-1,13.3",FHD,i5-10310U,16GB DDR4,256GB SSD,WIN11,LTE KÁRTYA,TOUCH
- Keresünk Galaxy S21/S21+/S21 Ultra/S21 FE
- HP Zbook 17 G6,17.3",FHD,i7-9850H,16GB DDR4,512GB SSD,T1000 4GB VGA,WIN11
- AKCIÓ! 4TB Corsair MP600 Pro XT NVMe SSD meghajtó garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest















