Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).
Úřad pro ochranu osobních údajů řeší desítky stížností na jednotné měsíční hlášení zaměstnavatele, které stát spustil počátkem dubna. Systém, jenž má firmám odlehčit od desítek formulářů, nejenže výrazně zatížil jejich účetní oddělení, ale docházelo v něm i k únikům osobních dat zaměstnanců k firmám, kde nepracovali. Podle ministerstva práce a sociálních věcí stála za problémem technická chyba. „Incident se týkal několika stovek
… více »Byla vydána (𝕏, Bluesky) nová verze 22.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.
Vim Classic byl vydán ve verzi 8.3. Drew DeVault oznámil tento fork editoru Vim (verze 8.2.0148, tj. těsně před zavedením Vim9 skriptování) v březnu letošního roku. Důvodem forku bylo, že vývojáři editorů Vim a Neovim začali při vývoji využívat LLM.
Open source konference DevConf.CZ 2026 proběhne 18. a 19. června v Brně na FIT VUT. Publikován byl program a spuštěna byla registrace.
Společnost JetBrains uvolnila verzi 2 svého open-source velkého jazykového modelu (LLM) pro vývojáře Mellum.
Probíhá konference Microsoft Build 2026. Microsoft představuje své novinky: kvantový čip Majorana 2, Surface Laptop Ultra a Surface RTX Spark Dev Box s NVIDIA RTX Spark, Intelligent Terminal, Coreutils for Windows (fork Rust Coreutils), AI modely MAI, AI agenta Scout, platformu pro agent-first zařízení Project Solara, …
echo "Toto uložím do souboru" > /tmp/test.txt pokud více textu, tak echo "Toto uložím do souboru" > /tmp/test.txt echo "Toto taky uložím do souboru" >> /tmp/test.txt echo "A toto taky uložím do souboru" >> /tmp/test.txtCo nevím je, jak uložit nějaká data do souboru když je toho třeba na 500 řádků, to musím napsat každý řádek zvlášť s použitím echa.../printf...? Poradí někdo? Dík
Řešení dotazu:
cat >soubor <<EOF text text ... EOF(b) použij exec
exec >souborToto je velmi pěkná a silná konstrukce v krátkých skiptech, ale jelikož ovlivňuje globálně stav shellu, tak není moc vhodná v situacích, kdy se má část skriptu/funkce chovat jako prostá funkce (neovliňující globální stav).
foo() {
echo text
echo text
...
}
foo >soubor
echo "standartni vystup" # zalohuj stdout exec 5>&1 # presmeruj stdout do soboru exec >out.txt echo "vystup do souboru" echo "standartni vystup" >&5 # obnov stdout exec 1>&5 echo "standartni vystup"
script my.out #ls ... exita vsetok output bude v
my.out
Asi nerozumiem, bo na to, aby vase c) platilo, tak by musel byt na to skript pripraveny. To znamena, ze by v nom muselo byt nieco, co berie v uvahu moznost, ze sa ako argument zada cesta k suboru, do ktoreho sa vystup samotneho skriptu zapise. Ale urcite takto nefunguje kazdy skript, vid :
#!/bin/bash
data(){
cat <<_EOF
skript: "$0"
pracovny adresar: "$PWD"
date: "$(date)"
_EOF
}
echo "Viem o argumente: $1 , ale ma vobec nezaujima, takze to dam sem "
data
patrik@thinkpad:~$ bash ./test.bash my.out Viem o argumente: my.out , ale ma vobec nezaujima, takze to dam sem skript: "./test.bash" pracovany adresar: "/home/patrik" date: "Mon Dec 10 16:51:18 GMT 2012"
Zadavatel dotazu sa snazi vytvorit vystup, ktory sa presmeruje do suboru.
Ak by ste ale napisal:
skript > my.out
tak mate pravdu v tom, ze to bude v subore zapisane a to funguje vzdy, no stale to nie je odpovedou na dane zadanie. Riesenie s here dokumentom je podla mojho nazoru najidealnejsie, pokial sa nechceme starat aj o distribuciu dalsich suborov ako len samotneho skriptu.
script sluzi na jednu vec:
script -- make typescript of terminal sessionnajvhodnejsia odpoved na autorovu otazku je to a). z toho b) mi prislo vhodne spomenut /viacmenej na okraj/ aj to moje c). do shelloveho scriptu by som ho ale nepouzil, na to je vhodne standardne presmerovanie.
Dik za rozsirenie obzorov, som o tom ani netusil, ze nieco take existuje a v spojitosti s jazykom (pisanim) ako napr. "dame session a pod.", co sa dneska pouziva, je naozaj niekedy zlozite vediet alebo pochopit, co vlastne autor mal na mysli. Vy ste to nepouzil, len mi to tak v prvom momente prislo ( script == skript ale v skutocnosti vo vasom prispevku script != skript ). Takze moja nevedomost a dnesny sposob vyjadrovania urobili svoje. :)
script sa zide hlavne pri generovani logov/dumpov z FW, konzol a pod.
data.txt a v skripte sa ich zapísanie do súboru scrvkne na triviálne
cp /path/to/data.txt /tmp/test.txtalebo
cat /path/to/data.txt > /tmp/test.txtpričom neskôr je jednoduché pridať ich predspracovanie, napr.:
cat /pat/to/data.txt | grep -i ... | sed -e ... | cut -f ... | tr -d ... | sort -k ... > /tmp/test.txt[... a vyhrať dnešné kolo súťaže o najzbytočnejší
cat, ja viem.
]
cat >suborNapisat vsetky riadky (alebo vlozit/skopirovat) a na konci na novom riadku CTRL+D (teda koniec suboru/vstupu)
když je toho třeba na 500 řádků, to musím napsat každý řádek zvlášťNemusíš – klidně můžeš na prvním řádku otevřít uvozovky a ukončit je až na posledním. Akorát se ti nesmí vyskytovat uvnitř textu (tam je escapuješ jako \")
echo "toto je první řádek normálně pokračujeme dál tady nějaký text v \"uvozovkách\" poslední řádek" > /tmp/test.txtPřípadně místo uvozovek můžeš použít apostrofy – podle toho, čeho máš v textu míň – takhle jde krásně zapisovat třeba XML do BASH skriptů. Akorát pozor na $ v případě uvozovek, aby se to neinterpretovalo jako proměnné.
... Akorát se ti nesmí vyskytovat uvnitř textu (tam je escapuješ jako \") ... ... Akorát pozor na $ v případě uvozovek, ...Akurát, že je okolo toho veľa "akurát". V prípade 500 riadkov by fakt bolo na mieste oddeliť údaje od ich spracovania. Možno keby sme vedeli, aký problém vlastne riešime, mohli by sme radiť lepšie.
catem. Heredoc by také nemusel být špatný.
Pro 500 řádek by se asi vyplatilo je umístit do nějakého souboru a vypsat catem.
Takto?
<![CDATA[…]]> v XML – když se člověku nechce escapovat speciální znaky a místo toho ohraničí konec textu nějakou speciální sekvencí. Ale zdaleka ne vždy je to potřeba. Proč to dělat složitě, když to jde jednoduše?
Když jazyk umožňuje mít řetězec v uvozovkách apostrofech na víc řádků, tak to přece není žádné prasení, ale využívání možností jazyka.
Proč by mělo být tohle:
cat <<"EEE" ahoj $1, jak to jde? EEE cat <<EEE ahoj $1, jak to jde? EEE read a <<EOF omfg omfg EOFsprávnější než tohle:
echo 'ahoj $1, jak to jde?'; echo "ahoj $1, jak to jde?"; a="omfg omfg";? Na používání "…" a '…' na více řádků nevidím nic špatného.
Proč to dělat složitě, když to jde jednoduše?S tím souhlasím, proto bych taky uvedené krátké příklady psal
echo -e "ahoj $1,\njak to jde?" echo -e 'ahoj $1,\njak to jde?' a=$'omfg\nomfg'aby se s nimi snáz pracovalo.
print nějaký\"html\"řádek print dalsi\"radek\" ....
echo "Toto uložím do souboru" > /tmp/test.txt echo "Toto taky uložím do souboru" >> /tmp/test.txt echo "A toto taky uložím do souboru" >> /tmp/test.txttak je nejjednodušším a nejpřímočařejším vylepšením jeho kódu to, že prostě uvozovky neukončí a normálně vkládá konce řádků, pokračuje dál a dál a nemusí je ukončovat a posílat do souboru jednotlivé řádky. Heredoc je samozřejmě taky dobré zmínit, ale v první řadě se hodí vědět, že BASH podporuje víceřádkový text v uvozovkách/apostrofech.
Tiskni
Sdílej: