www.wikidata.de-de.nina.az
Ein Shellskript oder Shell Skript ist ein Computerprogramm das von einer Shell interpretiert und ausgefuhrt wird Es ist letztlich eine ausfuhrbare Textdatei in der all jene Anweisungen verwendet werden konnen die ein Benutzer auch in der Befehlszeile der Shell nutzen kann 1 Shell SkriptShell Skript bash profile im Texteditor edDateiendung shMIME Type text x shellscript 1 Erstveroffentlichung mit UNIXArt SkriptspracheEnthalten in Unix ShellErweitert von div Unix Shells u a Bash Z shell u v m Standard s POSIXShell Skript bash profile im Texteditor edDie Shell selbst ist auch eine Programmiersprache wobei in verschiedenen Shells unterschiedliche Skriptsprachen verwendet werden The shell is actually a programming language it has variables loops decision making and so on Die Shell ist eigentlich eine Programmiersprache es gibt Variablen Schleifen Verzweigungen und so weiter Brian W Kernighan 2 Der Begriff Shellskript wird uberwiegend fur Unix Shell Skripte verwendet und bezieht sich daher vorwiegend auf unixahnliche Systeme obwohl auch andere Betriebssysteme und Shells ahnliche Skripte nutzen aber anders bezeichnen Inhaltsverzeichnis 1 Ursprung 2 Syntaxen verschiedener Unix Shells 3 Aufbau 4 Besonderheiten 4 1 Operatoren Funktionen und Leerzeichen 5 Ausfuhren eines Shellskripts 5 1 Aufruf in der Unix Shell 5 2 Ausfuhrungsort 6 Dateinamenerweiterung 7 Inhaltstyp 8 Literatur 9 Weblinks 10 EinzelnachweiseUrsprung BearbeitenShellskripte gehen auf das 1965 geschriebene Programm RUNCOM zuruck das von Louis Pouzin fur das Betriebssystem Multics entwickelt wurde Von ihm stammt auch der Begriff Shell wobei die Weiterentwicklung der Multics Shell die Fahigkeiten von RUNCOM integrierte 3 Die Entwickler von Unix nahmen sich Multics als Vorlage sodass die ursprungliche Unix Shell stark von der Multics Shell inspiriert war Auch die Shells spaterer Betriebssysteme haben das Konzept der Shellskripte ubernommen Bei Kommandozeileninterpretern von DOS technisch gesehen ebenfalls Shells z B COMMAND COM oder 4DOS werden Skripte als Stapelverarbeitungsdateien oder Batch Dateien von englisch batch jobs fur Stapelverarbeitung bezeichnet Bei der PowerShell von Microsoft heissen sie PowerShell Skripte 4 Syntaxen verschiedener Unix Shells BearbeitenDa unterschiedliche Unix Shells wie z B die Bash oder die C Shell nicht die gleiche Syntax bzw Skriptsprache nutzen ist ein Shellskript in der Regel nur fur eine spezifische Shell nutzbar sofern die eingesetzte Shell nicht die Syntax der anderen Shell versteht Anders ist dies bei der in POSIX spezifizierten Syntax Diese Spezifikation ermoglicht den systemubergreifenden Einsatz eines Skripts und die Interoperabilitat mehrerer Systeme Freilich muss dabei eine POSIX unterstutzende Shell eingesetzt werden Die erste POSIX Spezifikation fusst auf der Kornshell und berucksichtigt die Eigenheiten der Bourne Shell Heute genutzte Shells verwenden meistens eine an POSIX orientierte Syntax Daruber hinaus haben die meisten heute genutzten Shells einen sogenannten POSIX Modus der dazu fuhrt dass die verwendete Shell die POSIX Syntax verwendet und nicht ihre native Syntax 5 Nachfolgend eine Liste von Unix Shells gegliedert nach Syntax Angabe per Shebang bin sh ursprunglich vor POSIX Thompson Shell die ursprungliche UNIX Shell Bourne Shell die ab UNIX V7 die Thompson Shell als Standard Shell abloste bin sh nach Einfuhrung von POSIX Almquist Shell ash Debian Almquist Shell dash Bourne Again Shell kurz GNU Bash im POSIX Modus C Shell csh TENEX C Shell tcsh konform zu POSIX 1 2008 KornShell ksh und Public Domain Korn Shell pdksh beide konform zu POSIX 2 Z Shell zsh im POSIX Modus bin bash heute wahrscheinlich meist eingesetzte Shell GNU Bash bash Bourne Again Shell bewusst nicht POSIX konform hat aber einen konformen Modus Z Shell zsh versteht auch die Bash SyntaxAufbau BearbeitenIn der ersten Zeile eines Shellskripts auch Header genannt wird festgelegt welcher Interpreter das Skript abarbeiten soll Ein Shellskript beginnt daher mit dem sogenannten Shebang gefolgt von der Pfadangabe zur Shell die das Skript interpretieren soll 6 Wird diese Zeile weggelassen so wird das Skript von jener Shell interpretiert die auch neu erstellten Benutzerkonten standardmassig zugewiesen wird Welche das konkret ist hangt vom verwendeten System und dessen Voreinstellung ab Auch historische Shellskripte verwenden keinen Shebang da es erst nach der Einfuhrung von UNIX V7 alternative Shells gab Das folgende Beispiel zeigt ein einfaches Shellskript in POSIX Syntax mit einer for Schleife loop Die Anzahl der Durchlaufe wird durch die Anzahl an Werten bestimmt hier drei Alfa Romeo Bentley Citroen Zum besseren Verstandnis sind alle Werte hier in Anfuhrungszeichen gesetzt dies ist aber nur bei Alfa Romeo notwendig da darin ein Leerzeichen vorkommt Ohne die Anfuhrungszeichen wurden dabei zwei Werte interpretiert werden Alfa und Romeo Zu beachten ist dass die Anfuhrungszeichen nicht Teil des Wertes sind Bei jedem Durchlauf wird die Variable i neu gefullt und ihr Inhalt dann in die Standardausgabe geschrieben stdout siehe Standard Datenstrome Beim ersten Durchlauf wird die Variable mit Alfa Romeo gefullt beim zweiten mit Bentley beim dritten mit Citroen Dann endet die Schleife da es keinen weiteren Wert gibt bin sh for i in Alfa Romeo Bentley Citroen do echo i done Das Auslesen der Variable i erfolgt indem ein Dollarzeichen davor geschrieben wird i Da das Programm echo schlicht alles ausgibt was dahinter geschrieben steht abgesehen von Kommentaren ist es an dieser Stelle nicht notig die Variable in doppelte Anfuhrungszeichen zu setzen Soll der Wert der Variable aber anderweitig verwendet werden mussen doppelte Anfuhrungszeichen verwendet werden i damit aus Werten wie Alfa Romeo nicht doch noch mehrere Werte werden Wurden dann einfache Anfuhrungszeichen verwendet werden i wurde nicht der Inhalt der Variable ausgegeben sondern die Zeichenkette i unverandert als solche Besonderheiten BearbeitenOperatoren Funktionen und Leerzeichen Bearbeiten Eine Besonderheit im Gegensatz zu anderen Programmiersprachen ist die zwingende Verwendung von Leerzeichen beim Aufruf von Operatoren und Funktionen 7 Vergleichsoperatoren des folgenden Beispiels lt gt lt gt if 1 5 then echo 1 und 5 sind gleich else echo 1 und 5 sind nicht gleich fiAusfuhren eines Shellskripts BearbeitenAufruf in der Unix Shell Bearbeiten Standardmassig sind neu erstellte Dateien unter Unix nicht ausfuhrbar Um ein Shellskript ausfuhren zu konnen muss es uber die Zugriffsrechte auf ausfuhrbar gesetzt werden Dies geschieht durch das Programm chmod mit folgendem oder ahnlichem Befehl chmod x script sh Soll das Shellskript von einem beliebigen Pfad aus ausgefuhrt werden muss der komplette Pfad zum Shellskript angegeben werden Beispiel Das Shellskript usr local bin script sh soll ausgefuhrt werden Es muss folgender Befehl eingegeben werden usr local bin script sh Falls das Shellskript im aktuellen Arbeitsverzeichnis englisch working directory gespeichert ist und dort ausgefuhrt werden soll geschieht dies durch Voranstellen des aktuellen Pfads script sh Ausfuhrungsort Bearbeiten Das Arbeitsverzeichnis des Shellskripts ist der Pfad von dem aus es aufgerufen wird also nicht der Ort wo es sich selbst befindet Dateinamenerweiterung BearbeitenEine Dateinamenerweiterung fur Shellskript Dateien ist ganzlich unnotig Sie wird ausschliesslich hinzugefugt um einem Benutzer grob Informationen uber den Inhalt der Datei zu geben oder um sie innerhalb einer Desktop Umgebung einem Programm zum Bearbeiten per Doppelklick zuzuweisen i d Regel einem Texteditor oder einer integrierten Entwicklungsumgebung Die Erweiterung kann beispielsweise allgemein sh lauten Spezieller sind Erweiterungen wie bash oder zsh Texteditoren und ahnlichen dient die Erweiterung zum Anwenden passender Syntaxhervorhebung Inhaltstyp BearbeitenDer Inhaltstyp Content Type oder MIME Type kann abhangig vom System wie folgt lauten text x shellscript text plain application x shellscript application x sh 8 Literatur BearbeitenBrian W Kernighan The UNIX Programming Environment Prentice Hall 1984 ISBN 0 13 937699 2Weblinks BearbeitenBourne Shell Scripting Wikibooks englisch Bash Shell Scripting Wikibooks englisch C Shell Scripting Wikibooks englisch Einzelnachweise Bearbeiten a b ShellScript In Debian Wiki Abgerufen am 26 Marz 2021 englisch Brian W Kernighan The UNIX Programming Environment Prentice Hall 1984 ISBN 0 13 937699 2 Kapitel 3 Using the Shell S 94 Chantal Lebrument Fabien Soyez The Inventions of Louis Pouzin One of the Fathers of the Internet Springer Nature 2019 ISBN 978 3 03034836 6 S 24 englisch eingeschrankte Vorschau in der Google Buchsuche At the beginning of 1965 he developed the RUNCOM program an interpreter that makes it possible to execute a set of commands contained in a file and makes parameter substitution possible itworld com Bash POSIX Mode In Bash Reference Manual Abgerufen am 26 Marz 2021 Bash Shell Scripting Wikibooks englisch opensource com Funktionsreferenz finfo buffer In PHP Handbuch Abgerufen am 26 Marz 2021 Abgerufen von https de wikipedia org w index php title Shellskript amp oldid 227847013