Új hozzászólás Aktív témák
-
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
-
Jester01
veterán
Na de mivel jobb a screen mint ha egyszerűen háttérben futtatod? Csak fölösleges erőforrás pazarlás.
-
Jester01
veterán
válasz
Hege1234
#2653
üzenetére
Szerencse, hogy stringeket tetszőlegesen össze lehet fűzni.
echo 'foo${bar}'"${bar}"'baz'
Az elsőt nem bontja ki a másodikat igen.Tehát a paraméter előtt szépen teszel egy idézőjelet majd bezárod az aposztrófot. Majd idézőjelbe beírod a változódat, majd visszanyitod az aposztrófot, beteszed a záró idézőjelet és minden mehet tovább.
Ha azt a 2 sort már betetted változókba mondjuk $url és $pos akkor
curl -s "http://kodi:kodi@192.168.1.10:8080/jsonrpc?Base" -H 'Content-Type: application/json' --data '{"jsonrpc":"2.0","method":"Player.Open","params":{"item":{"file":"'"${url}"'"},"options":{"resume":'"${pos}"'}}}' -
Jester01
veterán
válasz
tordaitibi
#2562
üzenetére
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.
-
Jester01
veterán
válasz
tordaitibi
#2558
üzenetére
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
-
Jester01
veterán
válasz
tordaitibi
#2556
üzenetére
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.
-
Jester01
veterán
válasz
tordaitibi
#2553
üzenetére
#! /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 -
Jester01
veterán
-
Jester01
veterán
válasz
bambano
#2481
üzenetére
Nem egészen értem mire gondolsz, de rsync always verifies that each transferred file was correctly reconstructed on the receiving side by checking a whole-file checksum that is generated as the file is transferred Szóval pont azt csinálja amire te egy külön programot javasolsz

samujózsi: az egész folyamatról az exit code ad visszajelzést, de egyes fájlokról valóban csak a logból lesz információd.
EXIT VALUES
23 Partial transfer due to error
24 Partial transfer due to vanished source files -
Jester01
veterán
válasz
Jester01
#2470
üzenetére
Alapállapot:
$ tar cvf /dev/null Dokumentumok/Dokumentumok/Dokumentumok/Outlook f\341jlok/Dokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_18 10_17_59 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_19 06_24_12 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 13_26_02 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_16 07_03_14 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_20 10_31_00 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_19 09_25_18 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 10_21_47 UTC).pstÖsszes 2019_09_19 kihagyása wildcarddal:
$ tar cvf /dev/null --exclude 'T?rolt ?zenetek 2017 (2019_09_19*' Dokumentumok/Dokumentumok/Dokumentumok/Outlook f\341jlok/Dokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_18 10_17_59 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 13_26_02 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_16 07_03_14 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_20 10_31_00 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 10_21_47 UTC).pstUgyanez egyesével, fájllistával:
$ printf 'T\341rolt \374zenetek 2017 (2019_09_19 06_24_12 UTC).pst\nT\341rolt \374zenetek 2017 (2019_09_19 09_25_18 UTC).pst\n' > exclude.lst$ tar cvf /dev/null --no-wildcards -X exclude.lst Dokumentumok/Dokumentumok/Dokumentumok/Outlook f\341jlok/Dokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_18 10_17_59 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 13_26_02 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_16 07_03_14 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_20 10_31_00 UTC).pstDokumentumok/Outlook f\341jlok/T\341rolt \374zenetek 2017 (2019_09_13 10_21_47 UTC).pst -
Jester01
veterán
válasz
Kékes525
#2456
üzenetére
Szerintem a PH! interaktív fórumrészben nézelődj.
-
Jester01
veterán
válasz
Victor Súgó
#2409
üzenetére
Nosztalgiázok ... de ettől még meg lehet

-
Jester01
veterán
válasz
jani-wan
#2362
üzenetére
Mivel senki nem mutatta eddig meg, itt van a batch programozás topik.
-
Jester01
veterán
válasz
SteveBeard
#2295
üzenetére
Az echo-nak működnie kell akár cron script akár nem. Ott valami más gubanc van.
-
Jester01
veterán
válasz
SteveBeard
#2293
üzenetére
Az első megoldással semmi más dolgod nincs mint betenni a reboot helyett, ebben mi okozott gondot?

A másodikban nem értem minek a screen, látszólag az is inkább egy echo AT^RESET > dev/ttyUSB1 akar lenni.
-
Jester01
veterán
válasz
DrojDtroll
#2175
üzenetére
A tiéd, hiszen látod a halom eredményt. Meg a neve is scan. Az arping meg pontosan azt az egyet fogja amit megadsz neki. Hogy ez érdekel-e téged azt nem tudom

-
Jester01
veterán
válasz
DrojDtroll
#2171
üzenetére
Vagy arping (persze a kibányászást nem úszod meg, de nem kell mindenkit végigpingelni)
-
Jester01
veterán
válasz
DrojDtroll
#2117
üzenetére
Nyilván lehet, de azért ez eléggé pontatlan specifikáció.
-
Jester01
veterán
Erre tessék: batch programozás
-
Jester01
veterán
válasz
bambano
#2096
üzenetére
Ja hát nem tudtam, hogy a break az nem számít "össze-vissza ugrálsz"-nak

Ez meg: "while wget akarmi || true" éppenséggel pont ugyanolyan végtelen ciklus mint amit leköpködtél, a kilépési feltétel itt sem a while-ban van.Ennél:
while wget akarmi || true
doszerintem ez
while true
do
wget akarmiegyszerűbb és olvashatóbb. Főleg, ha ott nem csak 1 wget van, hanem valami bonyolultabb.
-
Jester01
veterán
válasz
bambano
#2089
üzenetére
Szerintem az most bonyolultabbra jönne ki, mivel kétszer kellene ellenőrizni a méretet vagy az elején is lenne várakozás.
size=0
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
# letoltes
# ...
size=$(stat -c \%s foo)
if [ $size -lt 40894464 -o $size -gt 45088768 ]
then
# hiba, varj 10 percet
sleep 10m
fi
done
# csinald meg amit kell
# ...Vagy
first=1
size=0
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
if [ $first -eq 0 ]
then
# hiba, varj 10 percet
sleep 10m
fi
first=0
# letoltes
# ...
size=$(stat -c \%s foo)
done
# csinald meg amit kell
# ...Vagy a letöltést lehet duplikálni:
# letoltes
# ...
size=$(stat -c \%s foo)
while [ $size -lt 40894464 -o $size -gt 45088768 ]
do
# hiba, varj 10 percet
sleep 10m
size=$(stat -c \%s foo)
# letoltes
# ...
size=$(stat -c \%s foo)
done
# csinald meg amit kell
# ...Szerintem ezek rondábbak. Más ötlet?
-
Jester01
veterán
Biztos, de most nem tudom mire gondolsz.
-
Jester01
veterán
-
Jester01
veterán
És hol akadtál el?

#! /bin/bash
while read net mask start end
do
if [ $net = Netz ]
then
continue
fi
echo -n $net
ping -n -c 1 $start >/dev/null 2>&1
pstart=$?
ping -n -c 1 $end >/dev/null 2>&1
pend=$?
if [ $pstart -eq 0 -o $pend -eq 0 ]
then
echo " Active"
else
echo " Not active"
fi
done -
Jester01
veterán
bash verzió:
for file
do
f=0
exec 3< "$file"
while read -u3 line
do
[[ "$line" =~ egy ]] && f=$((f | 1))
[[ "$line" =~ ketto ]] && f=$((f | 2))
done
exec 3<&-
[[ $f == 3 ]] && echo "$file"
done -
Jester01
veterán
válasz
spammer
#2060
üzenetére
Egysorosnak nem egysoros de egy parancs és egyszer olvassa a fájlokat:
awk '
BEGINFILE { f = 0 }
/egy/ { if (f % 2 < 1) f += 1; }
/ketto/ { if (f % 4 < 2) f += 2; }
ENDFILE { if (f == 3) print FILENAME }
'GNU awk-ban van or() függvény azzal:
awk '
BEGINFILE { f = 0 }
/egy/ { f = or(f, 1) }
/ketto/ { f = or(f, 2) }
ENDFILE { if (f == 3) print FILENAME }
' -
Jester01
veterán
válasz
Fecogame
#2042
üzenetére
Már mondtam, ez a normális script működés, hogy megvárja a parancs végét.
Ha maga a parancs visszatér mielőtt végezne az erősen gyanús és az ellen közvetlenül nem tudsz semmit csinálni a script oldalán. Szerintem ott valami más probléma van, a mysql dump szinte kizárt, hogy visszatér mielőtt kész lenne. De nem mutattad meg a parancsot... -
Jester01
veterán
válasz
Dadi207
#2001
üzenetére
A közhiedelemmel ellentétben az ls cm*NIGHTLY-bacon.zip parancsban a *-ot nem az ls oldja fel, hanem még a shell. Jelen esetben amikor ez történik, akkor még nem futott le a cd $CMU ezért nem talál illeszkedő fájlokat, így beállítástól függően vagy törli az argumentumot vagy pedig változatlanul adja át. Előbbi esetben az ls kimenete a $CMU teljes tartalma lesz, utóbbi esetben pedig semmi, mivel az ls maga már nem kezeli le a *-ot ezért betű szerint azt a fájlt keresi, hogy cm*NIGHTLY-bacon.zip (így, a csillaggal).
-
Jester01
veterán
válasz
Headless
#1998
üzenetére
A ciklust akkor dolgozza fel lassan, ha van benne valami lassú. A tiéd tele van külső program indítással (cut, grep, wc, sed) az enyém mind beépített ... garantáltan nagyságrendekkel gyorsabb. Ha nincs bash (vagy kompatibilis) akkor persze mindegy. A kimenet meg úgy néz ki ahogy először kérted

-
Jester01
veterán
válasz
Headless
#1992
üzenetére
Tiszta bash megoldás, ami csak egyszer olvassa be a sorokat és semmilyen külső programot nem hív:
#!/bin/bash
declare -a stats
while read line
do
field=${line%;*}
field=${field##*;}
stats[$field]=$((stats[$field] + 1))
done
for field in ${!stats[@]}
do
echo "[$field,$((-100-${stats[$field]}))"
doneJa, ha a nullákat is ki kell írni, akkor simán a számokon kell iterálni, nem a tömbön:
for ((field=0;field<14;field+=1))
do
echo "[$field,$((-100-${stats[$field]:-0}))"
done -
Jester01
veterán
Illetve ha csak kicsi hiányzik akkor ott a zram azzal lehet 2 helyett 3GB.
-
Jester01
veterán
válasz
BullZeye
#1897
üzenetére
Azért nem jó, mert rosszul csináltad a logikai kifejezést

Mikor nem kell mozgatni?
Ha MORNING_SHOW vagy FAIRY_TAIL vagy NARUTOMikor kell odébbmozgatni?
Ha nem MORNING_SHOW és nem FAIRY_TAIL és nem NARUTOTehát a || &&-re cserélendő.
Lásd még De Morgan átalakítás. -
-
Jester01
veterán
válasz
bambano
#1828
üzenetére
Nem, inkább valami rendes ciklusra. Ezek ugyanis elvileg először legyártják az egész listát és utána mennek végig rajta. Ilyen 16 meg 60 elemű listánál persze mindegy.
A másik amibe sokkal inkább bele lehet kötni, hogy 15:59-től számol vissza nem 15:00-tól

mins=15
secs=0
while [[ $mins -ge 0 ]]
do
printf "00:%02d:%02d\n" $mins $secs
sleep 1
secs=$((secs - 1))
if [[ $secs -lt 0 ]]
then
secs=59
mins=$((mins - 1))
fi
done
Új hozzászólás Aktív témák
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Battlefield 6
- Vezeték nélküli fejhallgatók
- Háztartási gépek
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Elektromos (hálózati és akkus) kéziszerszámok, tapasztalatok/vásárlás
- exHWSW - Értünk mindenhez IS
- Melyik tápegységet vegyem?
- Jelszókezelők
- Kávé kezdőknek - amatőr koffeinisták anonim klubja
- További aktív témák...
- Lenovo LOQ 15IRH8 - 15.6"FHD IPS 144Hz - i5-12450H - 16GB - 512GB - RTX 4050 - Win11 PRO - 1 év gari
- HIBÁTLAN iPhone 12 mini 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3392, 100% Akkumulátor
- DJI Osmo Pocket 3
- GYÖNYÖRŰ iPhone 13 mini 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3841, 100% Akkumulátor
- Ultimate előfizetés akár 4166 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest







