Ist bash eine interpretierte Sprache?

8

Nach dem, was ich bisher gelesen habe, scheint bash zur Definition einer interpretierten Sprache zu passen:

Allerdings konnte ich auf der Wikipedia-Seite für interpretierte Sprachen oder bei umfangreichen Suchen keinen Verweis auf bash finden auf Google. Ich habe auch eine Seite auf Programmers Stack gefunden Austausch, der impliziert, dass bash keine interpretierte Sprache ist - wenn nicht, was ist es dann?

    
James Ko 10.05.2015, 20:33
quelle

2 Antworten

14

Bash wird definitiv interpretiert ; Ich denke, darüber gibt es keine vernünftige Frage.

Es könnte möglicherweise eine Kontroverse darüber geben, ob es eine Sprache ist. Es ist in erster Linie für die interaktive Nutzung konzipiert und führt Befehle aus, die vom Betriebssystem bereitgestellt werden. Für viele dieser speziellen Anwendungen, wenn Sie nur Befehle wie

eingeben %Vor%

oder

%Vor%

Es ist leicht zu denken, dass es "nur" zum Ausführen einfacher Befehle ist. In diesem Sinne unterscheidet es sich stark von interpretierten Sprachen wie Perl und Python, die, obwohl sie interaktiv verwendet werden können, hauptsächlich zum Schreiben von Skripten (interpretierte Programme) verwendet werden.

Eine Konsequenz dieser Betonung ist, dass ihr Design für den interaktiven Gebrauch optimiert ist. Zeichenfolgen erfordern keine Anführungszeichen, die meisten Befehle werden sofort ausgeführt, nachdem sie eingegeben wurden. Die meisten Funktionen, die Sie damit ausführen, rufen externe Programme und keine integrierten Features auf usw.

Aber wie wir wissen, ist es auch möglich, Skripte mit bash zu schreiben, und bash hat viele Funktionen, insbesondere Flusssteuerungskonstrukte, die hauptsächlich für Skripte gedacht sind (obwohl sie auch in der Kommandozeile verwendet werden können).

Ein weiterer Unterschied zwischen bash und vielen Skriptsprachen besteht darin, dass ein bash-Skript gelesen, analysiert und in der richtigen Reihenfolge ausgeführt wird. Ein Syntaxfehler in der Mitte eines Bash-Skripts wird erst erkannt, wenn die Ausführung ihn erreicht. Ein Perl- oder Python-Skript dagegen wird vollständig analysiert, bevor die Ausführung beginnt. (Dinge wie eval können das ändern, aber die allgemeine Idee ist gültig.) Dies ist ein signifikanter Unterschied, aber es markiert keine scharfe Trennungslinie. Wenn überhaupt, macht Perl und Python den kompilierten Sprachen ähnlicher.

Fazit: Ja, bash ist eine interpretierte Sprache. Oder, genauer gesagt, bash ist ein Interpreter für eine interpretierte Sprache. (Der Name "bash" bezieht sich normalerweise auf die Shell / den Interpreter und nicht auf die Sprache, die er interpretiert.) Er weist einige signifikante Unterschiede zu anderen interpretierten Sprachen auf, die von Anfang an für die Skripterstellung entwickelt wurden es aus der Kategorie der "interpretierten Sprachen".

    
Keith Thompson 10.05.2015, 21:44
quelle
7

Bash ist ein Interpreter nach dem GNU Bash Reference Manual :

  

Bash ist die Shell oder der Befehlssprachen-Interpreter für das GNU-Betriebssystem.

    
Bobulous 10.05.2015 20:56
quelle