Shell-Fragen

Schiffversenker

Mitglied
Mitglied seit
25.06.2012
Beiträge
10.920
Aber das Problem ist doch, dass es beim Mac anders als bei Linux ist, Unix hin oder her! Einige Linux Befehle haben bei meinem MacBook nicht funktioniert... einige...
UNIX ist der Kern. Es gibt kein Verbot, zusätzliche Kommandos/Befehle/Shellskripte hinzuzufügen, und man bemerkt in der Shell halt nicht, ob's "original" ist oder dazuinstalliert.
Und es kann durchaus sein, daß dann zwar der Befehl gleiches bewirkt, die Argumente sich aber unterscheiden.
Und natürlich darf man immer weitere Befehle/Kommandos/Programem hinzufügen.
Die dann vielleicht woanders liegen. Also statt in /bin oder /sbin on /opt, /usr oder so.

Uns spezielle Apple-Kommandos (für Funktionen, die es eben nur auf Macs gibt) unterscheiden sich sogar (selten, aber ebne doch manchmal) von System zu System, obwhl das schwer zu verstehen ist. Aber die haben nichts mit dem UNIX-Unterbau zu tun, erlauben den Zugriff auf ansonsten per GUI erreichbare Mac-Funktionen.
 

maba_de

Mitglied
Mitglied seit
15.12.2003
Beiträge
15.694
Aber das Problem ist doch, dass es beim Mac anders als bei Linux ist, Unix hin oder her! Einige Linux Befehle haben bei meinem MacBook nicht funktioniert... einige...

Aber trotzdem danke für alles!
Linux ist nun mal kein Unix. Also musst du dich im Terminal natürlich an die Unix Befehle halten, wobei macOS ein BSD Unix ist.
 

warnochfrei

Mitglied
Mitglied seit
02.03.2019
Beiträge
1.337
Die Standardshell (interaktiv) ist nicht automatisch die Standardshell (Scripting).

/bin/sh ist selten die bash.
 

warnochfrei

Mitglied
Mitglied seit
02.03.2019
Beiträge
1.337
Also musst du dich im Terminal natürlich an die Unix Befehle halten, wobei macOS ein BSD Unix ist.
BSD ist seit Ende der 80er frei von jedem Unixcode. Unix V8 war ein BSD. Und wenn dann noch GCC usw. dazukommt, wird es kompliziert. ;)
 

electricdawn

Mitglied
Mitglied seit
01.12.2004
Beiträge
11.289
Das sind jetzt aber Details, die den TE jetzt nicht wirklich zu interessieren brauchen. ;)
 

electricdawn

Mitglied
Mitglied seit
01.12.2004
Beiträge
11.289
Er/Sie muss ja erstmal überhaupt lernen mit der Shell umzugehen. Dafür ist es egal, welches *NIX darunter liegt. Solange es eine bash ist.
 

maba_de

Mitglied
Mitglied seit
15.12.2003
Beiträge
15.694
Er/Sie muss ja erstmal überhaupt lernen mit der Shell umzugehen. Dafür ist es egal, welches *NIX darunter liegt. Solange es eine bash ist.
Naja, am Anfang lernt man, indem man Befehle abtippt. Und wenn die nicht funktionieren wundert man sich halt.
Ich wechsle regelmäßig die Systeme und suche mir manchmal einen Wolf, wie der Befehl auf dem jeweiligen System jetzt genau lautet und welche Parameter funktionieren. Gerade bei selten benutzten Befehlen.
 

electricdawn

Mitglied
Mitglied seit
01.12.2004
Beiträge
11.289
Klar. Du willst aber was Spezifisches erreichen. Im Falle des TEs aber geht es um die Grundlagen. Und die sind auf jeder Basis gleich, solange es sich um die gleiche Shell handelt.
 

Olivetti

Mitglied
Mitglied seit
09.12.2005
Beiträge
11.697
sagt mal, ihr laberseppel, ist hier irgendjemand anwesend, der ihm wenigstens im entferntesten helfen kann?!

1. ist schon beantwortet.
zu 2.
Code:
for i in {0..2}; do echo "${i}"; done
# oder
for ((i = 0; i < 3; i++)); do echo "${i}"; done
 
Zuletzt bearbeitet:

mikne64

Mitglied
Mitglied seit
02.04.2004
Beiträge
3.272
Hallo,

zu 2) Wenn Du Labels/Sektionen arbeitest, da geht wie erwähnt auch if then ... else

zu 3) Farbige Ausgabe
Vordergrund
Linux Skript farbig formatieren und übersichtlich ausrichten
https://www.pc-erfahrung.de/linux/s...inux/linux-scripting-ausgabe-formatieren.html
Hintergrund
Bunte Shells - Benutzung der Shell-Farben
https://www.selflinux.org/selflinux/html/bash_farben01.html
Du musst einfach statt der 3x die 4x-Nummern nehmen.

zu 4) Fortschrittsbalken
How to add a progress bar to a shell script?
https://stackoverflow.com/questions/238073/how-to-add-a-progress-bar-to-a-shell-script
Ich finde gerade Artikel nicht mehr. Das System weiß nicht wann Dein Vorgang fertig ist. Deswegen ist es mit dem Fortschrittsbalken schwierig. Auf jeden Fall den absoluten Wert prozentual errechnen.

Fü welchen Linux soll Dein Skript sein? Sonst nutze z.B. eine Distribution per USB-Stick zum Üben/Lernen.

Viele Grüße
 
Zuletzt bearbeitet:

Olivetti

Mitglied
Mitglied seit
09.12.2005
Beiträge
11.697
ich verstehe ihn so, dass er es für macos/BSD möchte, aber mit den üblichen linux-beispielen im netz dann probleme hatte.
 

electricdawn

Mitglied
Mitglied seit
01.12.2004
Beiträge
11.289
@Olivetti
Ich denke, hier ging es auch um Hilfe zur Selbsthilfe. Und die wurde hier gegeben. Und natuerlich klappt nicht alles, was spezifisch ist fuer Linux auch bei BSD. Deswegen sollte man erst auch mal mit den Grundlagen anfangen, bevor man anfaengt in die spezifischen Tiefen von MacOS zu steigen.

Just IMHO.

PS: Und bei dem TE habe ich irgendwie das Gefuehl, dass hier moeglichst schnell zum "Erfolg" gekommen werden muss, ohne sich wirklich in die Materie einarbeiten zu wollen. Vielleicht sehen wir da bald einen Thread "Hilfe, ich habe meine Kinder geschrumpft, aeh... meine Platte geloescht!".
 

Olivetti

Mitglied
Mitglied seit
09.12.2005
Beiträge
11.697
zu 3. färberei:
genannt wurden schon ansi-farbcodes in den links von @mikne64.
den kompletten background immer stringent zu färben, ist leider sehr umständlich und vergrößert den script-aufwand doch erheblich.
beispiel:
Bash:
t=$(($(tput cols)/3)); for IT in $(jot $(tput lines)); do printf "\e[42m%${t}s\e[47m%${t}s\e[41m%${t}s\e[0m\n"; done
stichworte wären also "tput ansi-escape-codes echo/printf".

ich würde empfehlen, das script mit dialog bzw. whiptail aufzubauen (dazu wäre homebrew nötig).
damit könntest du sämtliche problemstellungen, wie input, farben und progress gauge leicht im package erledigen.
 
Zuletzt bearbeitet:

wegus

Mitglied
Mitglied seit
13.09.2004
Beiträge
16.997
Grundsätzlich sind die Einwände bezüglich der Farben richtig. Eine Shell ist eben eigentlich reine Textinformation. Es gibt durchaus Bibliotheken die so etwas wie Grafik auch in Shells ausgeben können. So funktioniert etwa auch der Midnight-Commander ( ein Norton Clone). Für den Start ist das aber nicht die einfachste Materie. Wer trotzdem Ausgaben färben will, der wird in Beiträgen wie diesen hier fündig:

https://stackoverflow.com/questions/5947742/how-to-change-the-output-color-of-echo-in-linux

Kurz gesagt geht es um das richtige Senden von Kontroll-Zeichen. Ist die verbundene Konsole/Terminal farbfähig werden dann Vorder- oder Hintergrundfarben angepaßt.
 

dg2rbf

Mitglied
Mitglied seit
08.05.2010
Beiträge
6.640
Hi,
ich würde mir zuerst genügend Grundwissen aneignen und dann erst komplexere Sachen anfangen, es ist noch kein Meister vom Himmel gefallen :cool: .
Franz