Ich habe einige Schwierigkeiten zu verstehen, was ein Skript ist. Soweit ich weiß, handelt es sich dabei um eine Reihe von Befehlen in einer Shell. Und was ist der Unterschied zwischen einem Bash-Skript und einem Shell-Skript? Kann jemand dieses Konzept erklären?
Antwort1
aushttp://en.wikipedia.org/wiki/Shell_script:
Ein Shell-Skript ist ein Computerprogramm, das von der [Unix]-Shell, einem Kommandozeileninterpreter, ausgeführt werden soll. Die verschiedenen Dialekte von Shell-Skripten werden als Skriptsprachen betrachtet.
Mit anderen Worten: Ein Bash-Skript ist ein Shell-Skript, aber ein Shell-Skript nicht unbedingt ein Bash-Skript.
Im Gegensatz zu einer Anwendung wird ein Skript normalerweise als eine Reihe von Befehlen von A bis Z ausgeführt (es kann jedoch auch in einer Schleife laufen). Sobald ein Skript gestartet ist, nimmt es kaum noch Benutzereingaben entgegen und wird normalerweise geschrieben, um eine einzelne Aufgabe zu erfüllen.
Während moderne Anwendungen normalerweise in Klassen geschrieben werden, um je nach Entscheidung des Benutzers ein breiteres Aufgabenspektrum zu erfüllen, führt ein Skript seine Befehle meist von oben nach unten aus und wird beendet, sobald die Aufgabe erledigt ist.
Es gibt zahlreiche Skriptsprachen, von denen Bash nur eine ist. Um einige zu nennen, die unter Linux verwendet werden:Python,Schlag,perl,awk,sed
Antwort2
Der klassische Unterschied zwischen Skripten und Programmen besteht darin, dass Skripte interpretiert werden, während Programme kompiliert und in ausführbarer Form bereitgestellt werden.
Die Definition ist heute verschwommen, da Sie Skripte kompilieren können, wenn Sie das wirklich wollen (z. B. PHP, kompiliert von Facebook), und moderne Programmiersprachen Interpretation auf niedrigeren Ebenen verwenden (z. B. Java mit JVM, .NET und IL).
Shell-Skripte sind Skripte, die die Shell Command Language (sh) verwenden. sh ist eine Spezifikation mit mehreren Implementierungen. Bash begann als sh-Implementierung, entwickelte sich jedoch zu einem ganz anderen Konzept, obwohl es einen sh-Kompatibilitätsmodus unterstützt.