Po 5 měsících vývoje od vydání verze 6.1 byla vydána nová verze 6.2 svobodného open source redakčního systému WordPress. Kódové jméno Dolphy bylo vybráno na počest amerického jazzového altsaxofonisty, flétnisty a basklarinetisty Erica Dolphyho.
Josef Průša představil (YouTube) novou 3D tiskárnu Original Prusa MK4. Cena sestavené tiskárny je 27990 Kč. Cena stavebnice je 20990 Kč.
Turris OS, operační systém pro síťová zařízení Turris postavený na OpenWrt, byl vydán v nové verzi 6.3.0. Vývojáři upozorňují, že Netmetr byl nahrazen LibreSpeedem, viz příspěvek na blogu CZ.NIC.
Byl vydán xorg-server 21.1.8 a xwayland 22.1.9 a 23.1.1. Řešena je zranitelnost CVE-2023-1393 využitelná k lokální eskalaci práv.
Byla vydána nová verze 10 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu.
Ubuntu Cinnamon bude od Ubuntu 23.04 oficiální odnoží Ubuntu (návrh, schválení).
Byla vydána nová major verze 5.0 účetního softwaru GnuCash (Wikipedie). Ve formátu Flatpak je již k dispozici na Flathubu.
Na GOG.com běží Spring Sale. Při té příležitosti lze získat zdarma počítačovou hru Alwa's Awakening (ProtonDB).
Byla vydána verze 3.28.0 2D CAD (computer-aided design) softwaru QCAD (Wikipedie). Přehled novinek v Changelogu.
Změna ve vedení společnosti SUSE. Dosavadní CEO Melissa Di Donato odstoupila. Od 1. května je novým CEO Dirk-Peter van Leeuwen, bývalý Senior Vice President a General Manager ve společnosti Red Hat.
sys.argv[1];Tedy vypise svuj prvni parametr. Jakym zpusobem musim skript upravit, aby fungoval obemi temito moznostmi:
$ ./skript test test $ echo test | ./skript test
Řešení dotazu:
sys.stdin
.
Příklad, mějme soubor pokus.py:
#!/bin/env python import sys nejakadatazestdin = sys.stdin.readlines() print nejakadatazestdina pro otestovaní:
echo pokus.py | ./pokus.py
for line in sys.stdin: dělej něco...což by ze znalosti, že souborový objekt odpovídající stdin je sys.stdin, mělo jít odvodit...
#!/bin/bash while [ 1 ]; do echo "Tik" sleep 1 doneNyni chci napsat skript test.py takovy, aby to fungovalo takto:
$ ./test.sh | ./test.py Tik Tik Tik Tik ^Ccoz s tim vasim resenim nefunguje.
while True: print sys.stdin.readline()(funkcia readline ale na konci reťazca necháva znak \n)
Skript funguje, ale data visí v bufferu a jelikož jich nepřišlo takové množství, aby se buffer vyprázdnil, tak si myslíš, že to nešlape. Nažeň tam víc dat a uvidíš, že to jde. Nejlépe by jsi udělal kdyby jsi přesně popsal co potřebuješ, aby se případně dalo nadhodit vhodnější řešení.
$ sudo tcpdump -A -s 1400 'dst port 80' -i wlan0 | grep GETMi vypisuje jednotlive GET pozadavky, ktere chodi pres wlan0. Co radek, to pozadavek. Pozavek se do konzole vypise vzdy ihned pote co dorazi na wlan0 interface. Ja potrebuji pouze python script, ktery ty retezce (GET pozadavky) bude dostavat na stdin a ihned je vypisovat (pak skript samozrejme upravim, aby i neco s tema retezcema delal). Tzn, chci dosahnout toho, aby prikazy
$ sudo tcpdump -A -s 1400 'dst port 80' -i wlan0 | grep GETi
$ sudo tcpdump -A -s 1400 'dst port 80' -i wlan0 | grep GET | ./skript.pymely stejny vystup.
Šlo mi spíš o nějaké reálné nasazení, možná by Ti totiž místo tcpdump
vyhovoval více přímo modul do Pythonu Pcapy (je součástí Lennyho, třeba bude přímo i v Tvé distibuci).
import sys while True: print sys.stdin.readline().strip()musí
tcpdump -ldělat totéž co
tcpdump -l | ./test.pyTentokrát i ověřeno.
for line in sys.stdin: ...
, což mělo být nejčitější a nejpythonovější řešení. Konstrukce sice používá lazy evaluation, jenže souborové objekty kvůli efektivitě provádějí jakěsi vnitřní bufferování, takže člověk ty řádky stejně nedostane po jednom. Nezjistil jsem, jak/zda se dá vypnout.
sudo tcpdump -l -A -s 1400 'dst port 80' -i eth0 | grep --line-buffered GET | ./skript.pyDulezity je parametr -l u tcpdumpu a --line-buffered u grepu. Dekuji vsem za pomoc.
Tiskni
Sdílej: