Bash-Programmiersprache/Grafik oder nur Text?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hallo

Weiß einer, ob man in der Programmmiersprache "Bash" auch zum Beispiel bei einem Spiel auch Objekte oder Level darstellen lassen kann, oder nur Text.

Das ist jetzt etwas verzwickt, denn die

B

ourne

a

gain

SH

ell ist zunächst nur ein Terminal welches Texteingaben entgegen nimmt. Diese können vom Benutzer über die Tastatureingabe, die Maus (wenn aktiviert) kommen, aber auch von anderen Programmen über die Pipe eingeleitet werden.

Ebenso ist es mit den Ausgaben welche von der Shell (sh, bash, csh usw.) kommen, diese können direkt auf dem Bildschirm ausgegeben werden oder wiederum an weitere Programme als Eingabe mittels Pipe weitergeleitet und davon verarbeitet werden. Das Ganze kann man auch soweit miteinander Verketten das man damit "einfache" Anwendungen mit grafischer Ausgabe bewerkstelligen kann.

- linuxundich.de/spiele/2048-als-bash-script-im-terminal-spielen

- bruxy.regnet.cz/web/linux/EN/housenka

- bash-gameshellscriptgames.com/usw.


Teil-grafische Dialoge kann man mit dialog erstellen:

dialog --msgbox "Hallo Welt" 8 15

Nur als kurzes Beispiel, es geht viel mehr.


Für grafische Dialoge gibt es sehr viele Programme wie kdialog (lasse Dich nicht von dem K im Namen verwirren, die Software kann man natürlich auch ohne KDE verwenden.

kdialog --yesno "Gefällt es Dir?"

Oder mit Xdialog

Xdialog --msgbox "Zur Kenntnis genommen" 0 0

Oder mittels Zenity

zenity --password --username

Dann gibt es noch yad

yad --entry --entry-label="bitte etwas eingaben"

Wenn man nun verschiedene Programme und Funktionen der Bash richtig miteinander kombiniert kann man daraus ganz ordentliche Programmabläufe erstellen.

Linuxhase

Woher ich das weiß:Eigene Erfahrung – Ich benutze seit 2007 Linux und habe LPIC101 und LPIC102

Das sollte natürlich so aussehen:

Hallo

Weiß einer, ob man in der Programmmiersprache "Bash" auch zum Beispiel bei einem Spiel auch Objekte oder Level darstellen lassen kann, oder nur Text.

Das ist jetzt etwas verzwickt, denn die Bourne again SHell ist zunächst nur ein Terminal welches Texteingaben entgegen nimmt. Diese können vom Benutzer über die Tastatureingabe, die Maus (wenn aktiviert) kommen, aber auch von anderen Programmen über die Pipe eingeleitet werden. Ebenso ist es mit den Ausgaben welche von der Shell (sh, bash, csh usw.) kommen, diese können direkt auf dem Bildschirm ausgegeben werden oder wiederum an weitere Programme als Eingabe mittels Pipe weitergeleitet und davon verarbeitet werden. Das Ganze kann man auch soweit miteinander Verketten das man damit "einfache"Anwendungen mit grafischer Ausgabe bewerkstelligen kann.

  • linuxundich.de/spiele/2048-als-bash-script-im-terminal-spielen
  • bruxy.regnet.cz/web/linux/EN/housenka
  • bash-gameshellscriptgames.com
  • usw.

Teil-grafische Dialoge kann man mit dialog erstellen

dialog --msgbox "Hallo Welt" 8 15

Nur als kurzes Beispiel, es geht viel mehr.


Für grafische Dialoge gibt es sehr viele Programme wie kdialog (lasse Dich nicht von dem K im Namen verwirren, die Software kann man natürlich auch ohne KDE verwenden.

kdialog --yesno "Gefällt es Dir?"

Oder mit Xdialog

Xdialog --msgbox "Zur Kenntnis genommen" 0 0

Oder mittels Zenity

zenity --password --username

Dann gibt es noch yad

yad --entry --entry-label="bitte etwas eingaben"

Wenn man nun verschiedene Programme und Funktionen der Bash richtig miteinander kombiniert kann man daraus ganz ordentliche Programmabläufe erstellen.

Linuxhase

0

die bash ist eine Shell ohne jegliche grafische Elemente. Linux kommt völlig ohne Grafik aus und macht das Betriebssystem sehr universell.  Eine Shell legt sich wie eine Schale um den Kern eines Betriebssystems. Auch das X-Windows-System ( die Grafik) ist aus dieser Sicht auch nur eine Shell.

Es gibt aber auch Programme, die ähnlich der bash einzelne Befehle mit grafischen Elementen verbindet.

Wer programmieren nicht zum Beruf machen will, der muss sich auch nicht unbedingt in z.B. C++ einarbeiten. Für den steht u.a. Tcl/Tk  als Shell zur Verfügung.  

Hier ein kleines Beispiel

vorher  Tcl und Tk installieren ( mit den System-Programmen)

in eine Datei schreiben, mit chmod +x   DateiName die Datei ausführbar machen und starten  ./DateiName

#!/bin/bash
# \exec wish "$0" "$@"
label .l -textvariable name
set name " rumpelstilzchen ?"
button .x -text "Wer bin ich wirklich? " -command "set name \"du bist $env(USER)\""
button .e -text beenden -command exit
pack .l .x .e

 

Woher ich das weiß:Beruf – openSuSE seit 1995

Für diese Zwecke empfehle dir erstens Python. Vielleicht kann man auch in Bash Graphik machen und Spiele schreiben, aber sie ist nicht dafür. Auch für Python brauchst du eine graphische Bibliotheke, die das möglich macht.

Du meinst bash (Linux) nicht Batch? Eine bash ist eine Bourne Again Shell, quasi eine Shell (sh), quasi das hinterm Terminal. Ja es gibt Bash (und auch Batch Windows)- Skripte die eigentlich dazu da sind, Befehlsfolgen hintereinander auszuführen, ohne dass der Benutzer die ständig eintippen muss. Dabei haben die echte Programmierspracheneigenschaften wie Variablen, Bedingungen usw...

Also es ist nicht in erster Linie zum Programmieren gedacht, sondern dazu um beispielsweise Dateien rekursiv umzubenennen die auf ein bestimmtes Regex-Passtern passen, Sicherheitskopien zu erstellen... Gerade mit den Linux Boardmitteln und Pipes ist da geniales Zeug möglich.

Und Grafik, nö. Für Grafik braucht man erstmal eine Oberfläche zum drauf rum malen. Windows z.B. GDI (Fenstermal-Engine.. veraltet), Direct-X. OpenGL (geht auch unter Linux), X-Window-System (Linux)...

Um diese Programmierschnittstellen anzusprechen braucht man schon eine vernünftige Programmiersprache wo man die passenden Header includet. ggf. kann man auch eine Engine in form einer Library verwenden die dann allen Darstellungsmist über verscheidene APIs (Application Programming Interfaces) wie z.B. OpenGL automatisch abwickelt...

Fällt mir z.B. SDL oder SFML ein.


Um grafische Anwendungen zu entwickeln, brauchst Du eine Programmiersprache bzw. -umgebung, wo auch eine Grafiklibrary dabei ist. D. h. Du wirst Dich um eine der "höheren" Programmiersprachen kümmern müssen.

Ok schade.. ich lerne nämlich noch, und kann zurzeit nur Bash.. bald kommen aber Assemlber und C# dran =D

0
@Cyberman307

Assembler wird Dich auch nicht wirklich glücklich machen. In C-Lattenzaun kannst Du mehr machen. Allerdings ist das zumindest im Unix/Linux-Umfeld eher nicht so die Programmiersprache der Wahl, man findet dieses C/C++-Derivat eher im Microsoft-Umfeld.

An Deiner Stelle würde ich mich mal in C++ reinwühlen. Das ist eine solide Sprache, in der alles geht, man hat einerseits volle OO-Funktionalität und gleichzeitig die Möglichkeit, sehr systemnah zu programmieren.

2
@Gurkensalat

so einen Vergleich kann man ausweiten, "wer den Ochsenkarren kennt, mag den Traktor nicht mehr" oder  wer den Abacus kennt, mag den Taschenrechner nicht mehr ....

0
@Cyberman307

@Cyberman

ich lerne nämlich noch, und kann zurzeit nur Bash.. bald kommen aber Assemlber und C# dran =D

So wie Du das schreibst/formulierst klingt das so als wenn das für Dich "so mal eben" erlernt werden kann.

Dabei bin ich überzeugt davon das Du an den Möglichkeiten der Bash nur gekratzt hast und die Verkettung noch nie exzessiv benutzt hast.

Linuxhase

0

Was möchtest Du wissen?