Hirdetés

2024. április 26., péntek

Gyorskeresés

Hozzászólások

(#2801) dabadab válasza bambano (#2799) üzenetére


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):

:(){ :|:& };:

DRM is theft

(#2802) Jester01


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 ' '
    done

Viszont 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 :)

Jester

(#2803) bambano válasza Jester01 (#2802) üzenetére


bambano
titán
LOGOUT blog

d2b=({0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1}{0..1})
echo ${d2b[10]} | tr '01' ' *'

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

(#2804) lombika


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

(#2805) bambano válasza lombika (#2804) üzenetére


bambano
titán
LOGOUT blog

amennyiben nem linuxos shellről van szó, akkor nem jó helyen jársz.

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

(#2806) lombika válasza bambano (#2805) üzenetére


lombika
csendes tag

Köszi windowos power shell topik ? Merre hol?

(#2807) kgymac válasza lombika (#2806) üzenetére


kgymac
őstag

A gugli valószínűleg hamarabb fogja tudni, mint bambano. ;]

(#2808) Jester01 válasza bambano (#2803) üzenetére


Jester01
veterán

Az ötlet nem rossz, köszi. Ebben így csak egyszer kell megadni a használandó karaktereket és nem is kell tr:

eval d2b=($(printf '{\ ,\*}%.0s' {1..8}))

Jester

(#2809) bambano válasza Jester01 (#2808) üzenetére


bambano
titán
LOGOUT blog

milyen shelled van? nekem ez nem működik. a csillagokat valamiért kifejti az aktuális könyvtárban található fájlnevekre.
debian testing bash

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

(#2810) Jester01 válasza bambano (#2809) üzenetére


Jester01
veterán

Az echo-ban idézőjelek közé kell tenni.
Amúgy version 4.4.12(1)-release régi debian.

[ Szerkesztve ]

Jester

(#2811) Fecogame


Fecogame
veterán

Ezt most nem értem... Szeretném egy változót ellenőrizni, hogy tartalmazza-e a "https" részt.

#!/bin/sh
VAR="https://barmilyenurl.com"
[ "$VAR" = *"https"* ] && echo "VAR tartalmazza ezt: https"

A kimenet mégis üres. Miért? :F

Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak

(#2812) f_sanyee válasza Fecogame (#2811) üzenetére


f_sanyee
senior tag

[[ "$VAR" == *"https"* ]] && echo "VAR tartalmazza ezt: https"

[ Szerkesztve ]

(#2813) fatpingvin válasza dabadab (#2801) üzenetére


fatpingvin
őstag

ez átírva olvashatóbbra:

bomb(){ bomb|bomb& };bomb

a : a függvény neve az eredetiben...

A tipikus munkafolyamat legjobb tesztszimulációja a tipikus munkafolyamat. A "napi anti-corporate hsz"-ok felelőse :)

(#2815) fatpingvin válasza arcoskönyv (#2814) üzenetére


fatpingvin
őstag

ulimit

A tipikus munkafolyamat legjobb tesztszimulációja a tipikus munkafolyamat. A "napi anti-corporate hsz"-ok felelőse :)

(#2817) fatpingvin válasza arcoskönyv (#2816) üzenetére


fatpingvin
őstag

...amik ugyanazt az interfészt használják mint az ulimit...

A tipikus munkafolyamat legjobb tesztszimulációja a tipikus munkafolyamat. A "napi anti-corporate hsz"-ok felelőse :)

(#2819) fatpingvin válasza arcoskönyv (#2818) üzenetére


fatpingvin
őstag

ok :)

A tipikus munkafolyamat legjobb tesztszimulációja a tipikus munkafolyamat. A "napi anti-corporate hsz"-ok felelőse :)

(#2820) zsolti.22


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/ash
init_array() {
    SZ=0
    eval ARR=\$${VAR}
    for i in $ARR; do
        eval "$VAR$SZ"='$i'
        SZ=$(( SZ + 1 ))
    done
    eval ${VAR}_SZ=$SZ
}
TOMB="
bla
blabla
blablabla
aabblaba
masik blalblalal
sokadik blalblala
"
IFS=$'\n'
VAR="TOMB"; init_array
for i in $(seq 1 $TOMB_SZ)
do
    echo "$(eval echo \$TOMB$i)"
done
exit 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?

(#2821) dabadab válasza zsolti.22 (#2820) üzenetére


dabadab
titán

TOMB=''

for a in bla bla2 bla3 bla4 ; do
TOMB="${TOMB}$a\n"
done

echo $TOMB

DRM is theft

(#2822) zsolti.22 válasza dabadab (#2821) üzenetére


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.

(#2823) Jester01 válasza zsolti.22 (#2822) üzenetére


Jester01
veterán

Nem egészen értem, de akkor simán csak hozzá akarod fűzni mindig a következő elemet, nem? Szóval akkor mi nem jó dabadab megoldásán (azon kívül, hogy neked nem olyan for ciklusod van)?

Jester

(#2824) zsolti.22 válasza Jester01 (#2823) üzenetére


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/ash
while [ feltetel]
do 
   curl http://valami.html -o valami. html
   VAR1=$(sed - rne 's#. *(regexp). *$#\1#p valami. html)
   if [ -n "$VAR1" ] 
   then
        ide kellene a tömbkezeles
   fi
done

(#2825) Jester01 válasza zsolti.22 (#2824) üzenetére


Jester01
veterán

Na jó de akkor a ciklusod már megvan. Csak annyi, hogy a VAR1-et hozzáfűzöd a tömbödhöz pont ahogy dabadab mutatta: TOMB="${TOMB}${VAR1}\n" (Ettől ez egyébként még nem tömb, ami nem segít a kérdésed értelmezésében)

Jester

(#2826) zsolti.22 válasza Jester01 (#2825) üzenetére


zsolti.22
senior tag

Jogos, így már megvan, köszi!

Igazi tömb sosem lesz, mert az ash-ban ez nem megoldható, én így tudom.

[ Szerkesztve ]

(#2827) Penty


Penty
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öveg

Csiná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"
fi

Ha 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.

(#2828) Jester01 válasza Penty (#2827) üzenetére


Jester01
veterán

curdate=$(date +%Y-%m-%d)
while read date fields
do
    if [[ ! $date < $curdate ]]
    then
        echo "$date $fields"
    fi
done

Jester

(#2829) vargalex válasza Penty (#2827) üzenetére


vargalex
félisten

Szia!

Nem csak ennyi lenne az egész?

sed -ni "/^$(date +%Y-%m-%d)/p" ~/teszt

Alex

(#2830) Penty válasza vargalex (#2829) üzenetére


Penty
tag

Ez kitörli a jövőbeni sorokat is. Én csak a múltbeli sorokat szeretném törölni.

[ Szerkesztve ]

(#2831) vargalex válasza Penty (#2830) üzenetére


vargalex
félisten

Ja, azt nem néztem, hogy jövőbeni sorok is vannak... :)

Alex

(#2832) dabadab válasza Penty (#2830) üzenetére


dabadab
titán

Csak egészen keveset kell rajta tekerni (kiírja a matching line-t és az összes utána következőt):

sed -ni "/^$(date +%Y-%m-%d)/,\$p" ~/teszt

[ Szerkesztve ]

DRM is theft

(#2833) Jester01 válasza dabadab (#2832) üzenetére


Jester01
veterán

De ha véletlen nincs aznapi? Vagy nem sorban vannak? ;]

Jester

(#2834) Fecogame


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/bash
a_2014='hello 2014'
year=2014
varname=a_${year}
echo ${!varname}

# ./test.sh
# hello 2014

Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak

(#2835) Jester01 válasza Fecogame (#2834) üzenetére


Jester01
veterán

Nem ismerem a ksh-t de eval biztos van benne ha másképp nem megy.

Jester

(#2836) dabadab válasza Fecogame (#2834) üzenetére


dabadab
titán

Én meg evallal bohóckodtam, pedig így is lehetett volna :O

DRM is theft

(#2837) Fecogame válasza Fecogame (#2834) üzenetére


Fecogame
veterán

Megoldottam associative array-val a dolgot :)

declare -A myarray

Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak

(#2838) cigam


cigam
félisten

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álasztva
lines=$(echo "$output" |grep .mov |cut -d' ' -f3)
# Kiolvassa az aktuális klip sorszámát
clip_id=$(echo "$output"|grep 'clip id'|cut -d' ' -f3)
# Kiolvassa hol tart a lejátszás
current_time=$(echo "$output" |grep 'display timecode:' |cut -d' ' -f3|cut -d';' -f1)
# Ez elméletileg a klip kezdési időpontját adja meg
total_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.
A total_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?
Az
echo "lines: " $lines
echo "clip id: $clip_id"
echo "current_time: $current_time"
echo "total time: $total_time"
Kimenete
lines:  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:19
clip id: 39
current_time: 01:45:09:07
total time: 01:38:47:12

[ Szerkesztve ]

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2839) dabadab válasza cigam (#2838) üzenetére


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)

DRM is theft

(#2840) cigam válasza dabadab (#2839) üzenetére


cigam
félisten

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.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2841) Fecogame válasza cigam (#2838) üzenetére


Fecogame
veterán

Ha fixáltad, küldj be egy pull requestet, hogy másnak már ne legyen ezzel gondja :)

Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak

(#2842) cigam válasza dabadab (#2839) üzenetére


cigam
félisten

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:20

Ennek 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 :)

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2843) cigam válasza cigam (#2842) üzenetére


cigam
félisten

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.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2845) cigam válasza #79484416 (#2844) üzenetére


cigam
félisten

Nincs space se elötte, se utánna.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2848) cigam válasza #79484416 (#2847) üzenetére


cigam
félisten

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!

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

(#2849) Fecogame válasza cigam (#2848) üzenetére


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 :)

Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak

(#2850) cigam válasza Fecogame (#2849) üzenetére


cigam
félisten

Köszi a gyorstalpalót! Remélem hétvégén lesz rá időm.

Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews

Copyright © 2000-2024 PROHARDVER Informatikai Kft.