Shellcheck ist auch ein sehr gutes Tool. Gibt's beim Paketmanager des Vertrauens und online: shellcheck.net

Shell Variablen immer quoten. Sonst baut man schnell so lästige Fehler ein...

foo(){ echo "$1"; }; var="hallo welt"; foo $var
hallo
foo(){ echo "$1"; }; var="hallo welt"; foo "$var"
hallo welt

Mit "set -x" kann man die debug Ausgabe anschalten. Mit "set +x" schaltet man die wieder aus.

Wenn eurer Script also nicht geht, setzt mal set -x an den Anfang.

(alternativ: sh -x <script.sh>)

In der Variable $- stehen alle optionen die mit "set -o" gesetzt wurden.

Ich prüfe damit in meiner shellrc ob es sich um eine Interaktive Shell handelt:

# things for all shell processes
[[ $- != *i* ]] && return
# things for interactive shell processes

Also "cd ~" kennt jeder. Aber wusstet ihr auch, dass ihr mit cd "~user" in das Home Verzeichnis eines anderen Benutzers springen könnt? Pfadangaben wie "~user/test.txt" funktionieren natürlich auch.

UUGRN e.V. boosted

Es ist alles in der Cloud
EOEO!
Es ist alles nicht mehr meines
EO!
Es ist alles in der Cloud
EOEO
Doch *plonk* 504 Gateway Timout

UUGRN e.V. boosted

Version control system #gameoftrees 0.75 has been released.

This is the first release which ships gotwebd, a Fast-CGI Git repository web server written by @basepr1me and lots of help by @op and others. In the long term, gotwebd will replace its ancestor, the gotweb CGI program. If you already run gotweb then please try gotwebd and let us know about any issues.

This release contains way too many changes to list in a Toot! See the CHANGES file at gameoftrees.org/releases/CHANG if you want to know about all the bug fixes, new features, and changes made to key-bindings and run-time behaviour. Contributors include @florian , @tj, @jrick, and @sh Thanks a lot!

UUGRN e.V. boosted

Ich hätte gerne eine Sendung wie früher Pimp My Ride. Nur anstatt mit Autos, nun mit völlig kaputten APIs und total zernesteten Daten. Und dann kommt Xzibit im Büro vorbei und sagt “uhhhh dass aus der API überhaupt noch was raus kommt! Und die Daten 😱 Da müssen wir uns drum kümmern...). Dann fährt er zu seiner Garage mit Daten- und Programmier-Spezialist*innen und da sind auch alle total entsetzt. Und dann wird gepimpt und standardisiert... 📊

Ihr wollt einen Standardwert für eine Variable setzen?

FOO=${VAR:=bar}

Wenn VAR gesetzt ist, nimmt FOO den Wert von VAR an.

Wenn VAR nicht gesetzt ist, wird FOO der Wert "bar" zugewiesen.

UUGRN e.V. boosted
Question: My Lenovo laptop has this weird combined usb-c & ethernet connector. Plugging ethernet in will block the usb-c. Plugging usb-c in will block ethernet.

The whole construction looks like there should be a plug that connects ethernet and usb-c. But I can't find a breakout cable or something that would fit there.

Does anyone of you know why this connector is built this way and if there's a proper adapter that allows to use both?

#followerpower #lenovo

Falls ihr oft in der .vimrc oder .bashrc rumbastelt, legt euch doch aliase dafür an:

alias vimrc="vim ~/.vimrc"
alias bashrc="vim ~/.bashrc"

CDPATH kann mehrere Pfade beinhalten die mit : getrennt werden. Ihr solltet den aktuellen Pfad (also ".") immer als erstes angeben. Warum? Probierts aus...

Show thread

Setzt man die Variable CDPATH, kann man mit "cd" von überall in Verzeichnisse im CDPATH springen.

Beispiel:
cd ~
mkdir -p /usr/local/src/sys
CDPATH=.:/usr/local/src
cd sys

Nun springt "cd" direkt vom Home Verzeichnis nach
/usr/local/src/sys.

Wisst ihr was passiert wenn ihr zwei USB-C Smartphones miteinander verbindet?

Die USB-C Controller würfeln aus, wer wen läd. Bei gleichwertigen Geräten entscheidet der Zufall. Wenn ihr die Geräte trennt und wieder verbindet kann es sein, dass das andere geladen wird.

Ich toote hier öfter Dinge wie: program(1). Das bedeutet, dass es dafür einen Manpage in Section 1 gibt.

Lesen mit: man 1 program

Die Sections sind in man(1) beschrieben. Man sieht also an der Zahl ob es sich um ein Programm oder eine API oder eine Datei handelt.

Ihr wollt wissen, welche anderen Dateien von einem Programm gebraucht werden?

Dafür gibt es ldd(1):

ldd /usr/bin/ls
linux-vdso.so.1
libselinux.so.1
libcap.so.2
libc.so.6
...

"So muß man zum Beispiel für eine Standardkonfiguration jede Installationsdiskette nur einmal einlegen."

heise.de/ct/artikel/Vor-30-Jah

Show older
chaos.social

chaos.social – a Fediverse instance for & by the Chaos community