Uživatelé mobilních telefonů s Linuxem si nyní mohou nainstalovat aplikaci Mobilní Datovka. Díky tomu je přístup k datovým schránkám dostupný i na zařízeních s mobilními linuxovými distribucemi, jako jsou například Mobian, NixOS Mobile, pmOS atd. Aplikace je dostupná na Flathubu.
Software Freedom Conservancy v novém dokumentu shrnuje doporučení, jak přistupovat ke generativní AI založené na LLM při přispívání do svobodného a open-source softwaru. Mimo jiné vyzývá k obezřetnosti, transparentnosti a revizi generovaného kódu člověkem.
Byla vydána nová verze 5.6.0 programu na úpravu digitálních fotografií darktable (Wikipedie).
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma. V Týdnu v GNOME je zmíněn flatpak balíček pro GIMP 0.54.1 z roku 1996. Jedná se o poslední verzi GIMPu postavenou nad toolkitem Motif.
Home Assistant Operating System, tj. linuxová distribuce optimalizována pro hostování Home Assistanta a jeho aplikací, byl vydán v nové major verzi 18.0.
Po šestiletém úsilí byla z jádra Linux odstraněna funkce strncpy(). Všechna předchozí volání této funkce byla převedena na bezpečnější alternativy.
Byla vydána nová verze 261 správce systému a služeb systemd (Wikipedie, GitHub). Z novinek lze vypíchnout nový subsystém IMDS (Cloud "Instance Metadata Service"), nový příkaz storagectl nebo novou komponentu systemd-sysinstall.
Vývojové prostředí Qt Creator bylo vydáno ve verzi 20 (seznam změn). Novinky zahrnují hlavně rozšíření pro integraci LLM agentů nebo minimalistický editační režim uživatelského rozhraní („zen mode“).
Už jste se prolétli na webu Google Earth? Přibyl tam Simulátor letu (Nástroje / Simulátor letu). Funguje i bez účtu Google [𝕏].
Byla vydána nová verze 4.7 (𝕏, Bluesky, Mastodon) multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu.
Mám trochu hloupý problém. Byl jsem líný používat vi a tak jsem vytvořil skript pomoci echo "příkaz" >> scritp.sh a pak pomocí chmod 755 změnil příznaky. Když jsem chtěl soubor spustit ./script.sh tak to vyhodilo hlášku: -bash: ./script.sh: cannot execute binary file. Když vyrobím script přes mc tak vše funguje OK. Tuším, že to nějak souvisí s příznakem souboru, který určuje, jestli je textový nebo binární - systém jej vnímá jako binární a ne textový, ale nevím jak to změnit. Na souboru vytvořeném přes "echo" havaruje např. i program recode, takže ho systém vnímá jako jiný než textový. Nevíte, jak udělat, aby systém ten soubor vnímal jako textový a aby se soubor tvářil a choval jako textový?
Už jsem přišel na to čím to bylo. Ale přijde mi to divné. Na první řádce skriptu bylo #komentář a díky tomu, že jsem před tuto řádku vložil řádku a přidal
#!/bin/bash tak to začalo fungovat. Myslel jsem, že znaky za # je veškerý text braný jako komentář. Všechny dosavadní skripty, které jsem dělal jsem používal bez #!/bin/bash a fungovali. Můžete mi někdo vysvětlit, jaký přesně má tato řádka význam? Děkuji
Má význam - jak má jinak rozkodnout OS čím to má spustit.
Pokud tam tu řádku nemáš tak musíš shell spustit ručně: "bash skript.sh" ("sh skript.sh") nebo pokud je to jiný tak "jiný skript.xy".
Je to proto že linux nemá pouze jeden shell, ale jsou různé: sh, bash, tc, python, php .......
Ahoj,
Znaky za '#' jsou v shellu komentar az na jednu vyjimku - a tou je pukud je prvni znak souboru a druhy znak je '!' - pote jsou veschny znaky do konce radku interpretovany jako jmeno a argumenty programu kteremu je jmeno souboru poslan jako posledni prametr (nebo tak nejak) - ten sice obsahuje tu prvni rakdu, ale pro nej je to uz jen komentar (problem by byly shelly, kde '#' neni komentar).
Takze:
$ echo "# komentar" > test; echo "echo pokus" >> test; chmod +x test; ./test
pokus
- funguje protoze tam neni '!' za '#'
$ echo ' #!komentar' > test; echo "echo pokus" >> test; chmod +x test; ./test
pokus
- funguje protoze '#' je az druhy znak
$ echo > test; echo '#!komentar' >> test; echo "echo pokus" >> test; chmod +x test; ./test
pokus
- funguje protoze '#' je az druhy znak (zacina na druhem radku)
$ echo '#!komentar' > test; echo "echo pokus" >> test; chmod +x test; ./test
bash: ./test: komentar: bad interpreter: No such file or directory
- nefunguje
Shellový skript musí začínat speciálním řádkem, např. pro Bash: #!/bin/bash , pak až následují příkazy. Pokud jste vytvořil skript jen přesměrováním příkazu do souboru, tak tam patrně onen spec. řádek chybí.
Shellový skript musí začínat speciálním řádkem,
rastos@linux ~ $ echo ls /dev > /tmp/fero ; chmod 0700 /tmp/fero; /tmp/fero
cdrom ptya4 ptyd0 ptypc ptys8 ptyv4 ptyy0 ram6 tty0 tty49 ttyb8 ttye4 ttyr0 ttytc ttyw8 ttyz4
console ptya5 ptyd1 ptypd ptys9 ptyv5 ptyy1 ram7 tty1 tty5 ttyb9 ttye5 ttyr1 ttytd ttyw9 ttyz5
...
Je to trocha inak: ak spustiteľný súbor začína znakmi !# tak to čo nasleduje až po koniec riadku sa považuje za meno a a parametre programu, ktorý má interpretovať zvyšok súboru (čo môže byť bash, ale aj awk, perl, ... čokoľvek) Ak ten súbor nezačína riadkom #! tak závisí od shellu užívateľa, ale spravidla to znamená, že je interpretovaný sh.
If the first line of a file of shell commands starts with the characters #!, the results are unspecified. ... A portable application cannot use #! as the first line of a shell script ...Z hľadiska prenostiteľnosti je teda najlepšie písať skripty interpretovateľné shellom
sh a na ich začiatok žiadny interpreter explicitne neuvádzať.
Linux nerozlišuje binární nebo textové soubory, linux rozlišuje pouze spustitelné soubory to nastvíš pomocí chmod viz: man chmod.
Taky v tom adresáři musí být povoleno spouštět soubory.
Taky pokud je to skript tak je vhodné na začátku uvést jakým programem se má ten skript spouštět, provádí se to tak že na začátku souboru je "#!" a za ním následuje celá cesta k tomu spustitelnému souboru.
Příklad:
[petr@soban bin]$ cat pre #!/usr/bin/env python import sys, cgi transformed = [cgi.escape(line, quote=True) for line in sys.stdin] print '-' * 50 ........ [petr@soban bin]$ cat dv #!/bin/bash if test $# -eq 2 then ...........
Tiskni
Sdílej: