Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.
Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
[ "$a" == "1" ] && . /tmp/a || exit 1 test "$a" == "1" && . /tmp/a || exit 1
if expr then do-true else do-false, i když v tomto případě se to bude chovat pravděpodobně tak jak chceš (pokud se $a nerovná 1 a nebo pokud zklame source, tak exit)
if [[ "$a" == "1" ]]; then echo true; else echo false; fi if [ "$a" == "1" ]; then echo true; else echo false; fi
exit 1
provede i v případě, že "selže" hned první příkaz, za druhé porovnávání na rovnost u příkazu test
(a hranaté závorky jsou jen synonymum pro test
) se provádí operátorem "=
", ne "==
".
if [ "$a" = "1" ]; then echo true; else echo false;ale prostě rovnost se snad všude vyhodnocuje pomocí == tak mi to nejde psát jen =, proto raději všechno jedu na [[ ]], možná by mě to i nakopalo, ale když test v bash-i funguje i s == :(
proto raději všechno jedu na [[ ]]A jaký je rozdíl mezi [] a [[]] ? Dík
[
" je jen alias pro standardní příkaz test
, který je v bashi k dispozici jako builtin. Rozdíl je jen v tom, že vyžaduje, aby byl poslední parametr "]
" (a ignoruje ho). Varianta se zdvojenými závorkami je rozšíření bashe, které se chová trochu odlišně a nabízí některá rozšíření (a kromě jiného také podporuje "==
" pro porovnávání).
Je to návod pro bash a je správně, tam platí '=='
(i '=').
příkaz test v bash-i nevolá příkaz /usr/bin/test
, ale BULITIN příkaz test
je to stejný případ jako time
, viz man bash
a SHELL BUILTIN COMMANDS.
test 2 == 2 && echo kukvs.
"$(which test)" 2 == 2 && echo kuk(which viz man which)
Conditional expressions are used by the [[ compound command and the test and [ builtin commands.
....When used with ‘[[’, the ‘<’ and ‘>’ operators sort lexicographically using the current locale. The test command uses ASCII ordering.
....
string1 == string2
string1 = string2
True if the strings are equal. ‘=’ should be used with the test command for POSIX conformance.
-eq
, -ne
a spol.
I keď sú podobné jednoriadkové zápisy úsporné a niekedy užitočné, v skutočných skriptoch zložitejších ako triviálnych sa držím plnej viacriadkovej syntaxe s patričným odsadzovaním, mená premenných zátvorkujem kučeravými zátvorkami, mená súborov ukladám do premenných, etc. Je to mierne viac práce pri písaní skriptu, ale keď sa k nemu po pol roku vrátim - zvyčajne som už medzi tým zabudol, že skript vôbec existuje, nie to ešte ako presne funguje - ušetrí mi to zdĺhavú kryptoanalýzu existujúceho kódu.
Nakoniec, je skutočne potrebné skriptovať v bash-i? Nestačil by obyčajný sh? Podľa mňa by v sa v bash-i mali skriptovať iba veci, na ktoré sh buď nestačí, alebo by riešenie v sh bolo signifikantne zložitejšie a zároveň by v bash-i mal skriptovať iba ten, kto vie, kde je hranica medzi sh a bash. V prípade použitia bash-u si treba uvedomiť negatívne dôsledky, najmä prenositeľnosť: zatiaľ čo na Linuxe je bash de-facto štandard, na iných unixoch a unix-like systémoch čaká autorov bash skriptov nepríjemené prekvapenie, najmä v enterprise prostredí, kde musíte inštaláciu každého balíčka navyše rozumne zdôvodniť. Na druhej strane ale uznávam, že to je asi ten najmenší problém prenositeľnosti skriptu. Kto skúsil, vie.
YMMV
Tiskni Sdílej: