bash
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| bash [2024-04-27 16:51:27] – [Probleme mit der while-Schleife] manfred | bash [2025-08-31 22:08:18] (aktuell) – [Zahlen von eine Basis in eine andere Basis umrechnen] manfred | ||
|---|---|---|---|
| Zeile 338: | Zeile 338: | ||
| > echo " | > echo " | ||
| 3.00000000000000000002 | 3.00000000000000000002 | ||
| + | |||
| + | > echo "a=1; b=2; c=3; print \" | ||
| + | a=1; b=2; c=3; print " | ||
| + | | ||
| + | > echo "a=1; b=2; c=3; print \" | ||
| + | a=1 b=2 c=3 | ||
| + | Summe:6 | ||
| + | |||
| + | |||
| + | === Zahlen von eine Basis in eine andere Basis umrechnen === | ||
| + | |||
| + | ibase = In welcher Basis verstehe ich deine Eingaben? | ||
| + | obase = In welcher Basis soll ich die Ergebnisse ausgeben? | ||
| + | |||
| + | > echo " | ||
| + | 11111111 | ||
| + | |||
| + | > echo " | ||
| + | 11111111 | ||
| + | |||
| + | > vim calc.bc | ||
| + | ibase=10; | ||
| + | obase=2; | ||
| + | | ||
| + | > echo " | ||
| + | 11111111 | ||
| + | |||
| + | <code c Zahlenbasis.bc> | ||
| + | obase = read(); | ||
| + | n = read(); | ||
| + | print n; | ||
| + | print " | ||
| + | </ | ||
| + | |||
| + | <code bash> | ||
| + | > for BASIS in 2 3 5 7 8 12 16; do echo " | ||
| + | 1111011 | ||
| + | 11120 | ||
| + | 443 | ||
| + | 234 | ||
| + | 173 | ||
| + | A3 | ||
| + | 7B | ||
| + | </ | ||
| Zeile 736: | Zeile 780: | ||
| Deshalb ist die Ausgabe dieses Skripts auch leer: | Deshalb ist die Ausgabe dieses Skripts auch leer: | ||
| - | | + | <code bash> |
| - | + | # | |
| - | VAR="" | + | |
| - | echo " | + | VAR="" |
| - | do | + | echo " |
| - | VAR=" | + | do |
| - | done | + | VAR=" |
| - | + | done | |
| - | echo " | + | |
| + | echo " | ||
| + | </ | ||
| Dieses Skript liefert dagegen eine Ausgabe: | Dieses Skript liefert dagegen eine Ausgabe: | ||
| - | | + | <code bash> |
| - | + | # | |
| - | VAR="" | + | |
| - | while read ZEILE | + | VAR="" |
| - | do | + | while read ZEILE |
| - | VAR=" | + | do |
| - | done < <(echo " | + | VAR=" |
| - | + | done < <(echo " | |
| - | echo " | + | |
| + | echo " | ||
| + | </ | ||
| Keine Pipe, | Keine Pipe, | ||
| Zeile 762: | Zeile 810: | ||
| Allserdings funktioniert das auch nicht in vollem Umfang: | Allserdings funktioniert das auch nicht in vollem Umfang: | ||
| - | | + | <code bash> |
| - | + | # | |
| - | VAR1="" | + | |
| - | VAR2="" | + | VAR1="" |
| - | VAR3="" | + | VAR2="" |
| - | while read SPALTE1 SPALTE2 SPALTE3 | + | VAR3="" |
| - | do | + | while read SPALTE1 SPALTE2 SPALTE3 |
| - | VAR1=" | + | do |
| - | VAR2=" | + | VAR1=" |
| - | VAR3=" | + | VAR2=" |
| - | done < <(echo " | + | VAR3=" |
| - | + | done < <(echo " | |
| - | echo " | + | |
| - | VAR1=' | + | echo " |
| - | VAR2=' | + | VAR1=' |
| - | VAR3=' | + | VAR2=' |
| - | " | + | VAR3=' |
| + | " | ||
| + | </ | ||
| Wenn die Zeile gleichzeitig noch in Spalten aufgetrennt werden soll, | Wenn die Zeile gleichzeitig noch in Spalten aufgetrennt werden soll, | ||
| Zeile 789: | Zeile 839: | ||
| führt man in einer WHILE-Schleife komplexe Kommandos aus, dann wird oft nur das erste Kommando ausgeführt oder jedes 2. Kommando nicht ausgeführt: | führt man in einer WHILE-Schleife komplexe Kommandos aus, dann wird oft nur das erste Kommando ausgeführt oder jedes 2. Kommando nicht ausgeführt: | ||
| <code bash> | <code bash> | ||
| + | # | ||
| + | |||
| # bei jeder 2. Zeile (Kommando) fehlen an Zeilenanfang, | # bei jeder 2. Zeile (Kommando) fehlen an Zeilenanfang, | ||
| + | |||
| find . -type f -iname "Air Strike_*.mkv" | find . -type f -iname "Air Strike_*.mkv" | ||
| do | do | ||
| Zeile 798: | Zeile 851: | ||
| Als Lösung kann man entweder den Umweg über eine Zwischendatei gehen, die dann als statisches Skript ausgeführt wird: | Als Lösung kann man entweder den Umweg über eine Zwischendatei gehen, die dann als statisches Skript ausgeführt wird: | ||
| <code bash> | <code bash> | ||
| + | # | ||
| + | |||
| # funktioniert, | # funktioniert, | ||
| + | |||
| find . -type f -iname "Air Strike_*.mkv" | find . -type f -iname "Air Strike_*.mkv" | ||
| do | do | ||
| Zeile 807: | Zeile 863: | ||
| </ | </ | ||
| - | Oder man wählt die FOR-Schleife, | + | Oder man wählt die FOR-Schleife, |
| <code bash> | <code bash> | ||
| - | # funktioniert, | + | # |
| + | |||
| + | # funktioniert, | ||
| IFS=$' | IFS=$' | ||
| DATEIEN=($(find . -type f -iname "Air Strike_*.mkv" | DATEIEN=($(find . -type f -iname "Air Strike_*.mkv" | ||
| Zeile 1069: | Zeile 1128: | ||
| > echo ${# | > echo ${# | ||
| 255 | 255 | ||
| + | |||
| + | > arrayLaenge=${# | ||
| + | > echo "Das Array enthält ' | ||
| + | Das Array enthält ' | ||
| > testarray=($(find Videos/ -type f)) | > testarray=($(find Videos/ -type f)) | ||
/home/http/wiki/data/attic/bash.1714236687.txt · Zuletzt geändert: von manfred
