Podmínka while nefunguje dle očekávání

z_sk

Re:Podmínka while nefunguje dle očekávání
« Odpověď #15 kdy: 14. 09. 2023, 11:51:00 »
Hľa, ak je veľmi systém vyťažený, tak vypíše o tom info a skonči. Toto je správne. Predtým príspevok nebol správny, nakoľko nefungovalo dobreé pri vyťažení pod 10 % systému.
Kód: [Vybrat]
# Licence: CC0 1.0
while [ 1 ]; do

# actual=`LANG=C top -n 1|head -n 3|tail -n 1|awk '{print $4}'|tr -d .`
actual=`LANG=C top -n 1|awk '{if (NR == 3) {split($4, v, "."); print v[1]v[2]}}'`

# 700 = 70%
if [ "$actual" -ge "700" ]; then
echo "System je velmi vytazeny"
break;
fi
done


Re:Podmínka while nefunguje dle očekávání
« Odpověď #16 kdy: 15. 09. 2023, 10:49:54 »
Ok dík. Trochu jsem se ptal AI na toto LANG=C .§
On dal příklad:
LANG=cs_CZ.utf8 printf "%f\n" 10.1001
Proč tedy používat
LANG=C
je to jako kratší?

A ten json mám použít abych tam měl ty desetinné čárky?

Protože v ladícím skriptu mám:
  echo "mpstat_activity_float() idle=..."
  local idle=$(mpstat | awk 'NF >= 1 {idle += $(NF)} END {print idle}')
  echo "mpstat_activity_float() activity=..."
  local activity=$((100 - idle))

Takže zdá se že to idle už je bez desetinné čárky. Asi se to v AWK ztratí.

AI dal ještě toto (opraveno ručně +LANG=C ):
local idle=$(LANG=C mpstat | awk 'NF >= 1 {idle += $(NF)} END {printf "%.2f", idle}')
Tak vyzkouším, je tam jen třeba dát printf na ten výstup
« Poslední změna: 15. 09. 2023, 10:59:05 od exkalibr »

Re:Podmínka while nefunguje dle očekávání
« Odpověď #17 kdy: 15. 09. 2023, 11:19:21 »
Zdá se že jsem to vyřešil.

Poslední chyba tedy bylo, že jsem v té funkci kde se má vrátit float dával debug hlášky echo ...

Po smazání už to je vše v cajku.

Díky


Jo a opravil jsem toto
Kód: [Vybrat]
local activity=$((100 - idle))nejdříve na toto (chyba nelze provádět aritmetickou operaci pomocí .00, chybný token ...)
Kód: [Vybrat]
local activity=$((100.00 - idle))A pak správně pomocí bc:
Kód: [Vybrat]
local activity=$(echo "100 - $idle" | bc)

Re:Podmínka while nefunguje dle očekávání
« Odpověď #18 kdy: 15. 09. 2023, 11:21:08 »
Co znamená ten koment?

# Licence: CC0 1.0

Karmelos

  • *****
  • 1 034
    • Zobrazit profil
    • E-mail
Re:Podmínka while nefunguje dle očekávání
« Odpověď #19 kdy: 15. 09. 2023, 11:40:47 »
Co znamená ten koment?

# Licence: CC0 1.0

Pan gůgl to ví a po zadání "Licence: CC0 1.0" to vyplodí na první dobrou... Pravděpodobně to ví i ta velmi pokročilá AI co používáte na bastlení kódu...
Gréta je nejlepší.


Re:Podmínka while nefunguje dle očekávání
« Odpověď #20 kdy: 16. 09. 2023, 17:13:16 »
Linux pouštím tak jednou za den maximálně. Už na to moc nemám nervy.
Pro informaci a kontext, jedná se pořád o Linux pouštěný na Win XP vitrualizovaně s dosti omezenou pamětí?

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Podmínka while nefunguje dle očekávání
« Odpověď #21 kdy: 16. 09. 2023, 18:13:40 »
Linux pouštím tak jednou za den maximálně. Už na to moc nemám nervy. Když to krachne, balím.

Linux pouštím tak jednou nebo dvakrát za měsíc. Vždy poté, co se mi nedopatřením vybijí baterky a musím ho znovu nastartovat.

Re:Podmínka while nefunguje dle očekávání
« Odpověď #22 kdy: 17. 09. 2023, 11:50:06 »
Co znamená ten koment?

# Licence: CC0 1.0

Pan gůgl to ví a po zadání "Licence: CC0 1.0" to vyplodí na první dobrou... Pravděpodobně to ví i ta velmi pokročilá AI co používáte na bastlení kódu...

To je dobrý nápad, mohl jsem ten vyhledávač použít, pokud jsem nebyl na linuxu nebo neměl dostatek systémových prostředků ke spuštění LLM chatu.

Re:Podmínka while nefunguje dle očekávání
« Odpověď #23 kdy: 17. 09. 2023, 11:51:41 »
Linux pouštím tak jednou za den maximálně. Už na to moc nemám nervy. Když to krachne, balím.

Linux pouštím tak jednou nebo dvakrát za měsíc. Vždy poté, co se mi nedopatřením vybijí baterky a musím ho znovu nastartovat.

Ano. Stále stejné. Ještě jsem nedořešil pár nedostatků co stále nevím jak dělat, abych našel odvahu k úplnému přechodu. To budu muset mít hodně dobrou náladu, abych se odhodlal. Promyslet rozvržení oddílů a tak, je to poměrně těžké rozhodnutí.

Re:Podmínka while nefunguje dle očekávání
« Odpověď #24 kdy: 17. 09. 2023, 12:16:54 »
Linux pouštím tak jednou za den maximálně. Už na to moc nemám nervy. Když to krachne, balím.

Linux pouštím tak jednou nebo dvakrát za měsíc. Vždy poté, co se mi nedopatřením vybijí baterky a musím ho znovu nastartovat.

Ano. Stále stejné. Ještě jsem nedořešil pár nedostatků co stále nevím jak dělat, abych našel odvahu k úplnému přechodu. To budu muset mít hodně dobrou náladu, abych se odhodlal. Promyslet rozvržení oddílů a tak, je to poměrně těžké rozhodnutí.

Ty jsi postizenej, nebo troll?

Karmelos

  • *****
  • 1 034
    • Zobrazit profil
    • E-mail
Re:Podmínka while nefunguje dle očekávání
« Odpověď #25 kdy: 17. 09. 2023, 16:02:30 »
Linux pouštím tak jednou za den maximálně. Už na to moc nemám nervy. Když to krachne, balím.

Linux pouštím tak jednou nebo dvakrát za měsíc. Vždy poté, co se mi nedopatřením vybijí baterky a musím ho znovu nastartovat.

Ano. Stále stejné. Ještě jsem nedořešil pár nedostatků co stále nevím jak dělat, abych našel odvahu k úplnému přechodu. To budu muset mít hodně dobrou náladu, abych se odhodlal. Promyslet rozvržení oddílů a tak, je to poměrně těžké rozhodnutí.

Nepotřebujete nad ničím přemýšlet. Pokud máte sata disk v tom počítači,můžete zkusit následující postup. Sám jsem ho aplikoval několikrát: Kupte si SSD s dvojnásobnou velikostí než je původní disk, a externí krabičku na disk. Nový disk vložte do krabičky, a připojte k PC. Nabootujte clonezilu z USB klíčenky a pomocí clonezily si překopírujte současný disk na ten nový v krabičce. po skončení vypněte stroj a vyměňte disky. Po zapnutí by vám měl naběhnout původní systém z nového disku. Máte zároveň funkční stroj a ultimátní kopii/zálohu původního systému. Vypněte počítač, nabootujte z usb klíčenky s instalací mintu a na volné místo nainstalujet ten váš mint. Rozdělení disku nechte na instalátoru.
Gréta je nejlepší.

z_sk

Re:Podmínka while nefunguje dle očekávání
« Odpověď #26 kdy: 20. 09. 2023, 09:39:57 »
Ok dík. Trochu jsem se ptal AI na toto LANG=C .§
On dal příklad:
LANG=cs_CZ.utf8 printf "%f\n" 10.1001
Proč tedy používat
LANG=C
je to jako kratší?

A ten json mám použít abych tam měl ty desetinné čárky?

Čo viem, tak C je povinne existujúce lokalizačné prostredie pre programy v C. Jazyk je angličtina, reálne číslo je vo formáte napríklad 123456.789. Ak dáš LANG=C, tak čitateľovi signalizuje, že program je len tool (nejaký konvertor alebo iné) a nemá priamy výstup pre používateľa. Ak ale potrebuješ jazyk (napr. pre preklady správ) potom nastavuj premennú LC_ALL. Používateľ môže mať rôznu lokalizáciu, takže ak chceš správny výstup aj pri inej lokalizácie, tak si ho nastavíš na pevno (ktorý ďalej spracúvaš).

JSON je vhodný vtedy, ak spracuješ strojovo výpis. Pridávanie/odoberanie nejakého key-value páru, nemusí mať vplyv na Tvoje spracúvanie. Ale, iné umiestnenie v UI môže zmeniť Tvoje parsovanie. Čiže JSON je viac „stabilnejší“ na následne spracúvanie.