Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
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.
cat
em. Heredoc by také nemusel být špatný.
Pro 500 řádek by se asi vyplatilo je umístit do nějakého souboru a vypsat cat
em.
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: