Manuscrit de Shell

Un manuscrit de coquille de est un manuscrit écrit pour la coquille , ou ligne de commande de l'interprète , d'un du système d'exploitation. On considère souvent l'un simple le langage de programmation Domain-specific . Les opérations typiques ont exécuté par des manuscrits de coquille la manipulation de fichier d'inclusion, l'exécution du programme, et le texte d'impression. Habituellement, le manuscrit de coquille de se rapporte à des manuscrits écrits pour une coquille d'Unix , alors que le COMMAND.COM (DOS de de ) et la ligne de commande du Cmd.exe ( Windows ) de manuscrits s'appellent habituellement les fichiers séquentiels de ', mais ici des propriétés de toutes les deux sont discutées.

Beaucoup d'interprètes de manuscrit de coquille doublent en tant que ligne de commande de l'interface , tel que les diverses coquilles d'Unix, le Windows PowerShell ou le MS-DOS COMMAND. D'autres, tel que le AppleScript ou le centre serveur graphique (WScript.exe) de manuscrit de Windows de , ajoutent des possibilités scripting aux environnements de calcul sans exiger une ligne de commande interface. D'autres exemples des langages de programmation de que a principalement prévus pour scripting de coquille incluent le DCL et le JCL .

Possibilités

Sous leur forme plus fondamentale, les manuscrits de coquille permettent plusieurs commandes qui seraient " écrit ; à la main " ; à une ligne de commande interface à exécuter automatiquement et rapidement. Par exemple, le manuscrit suivant du shell Bourne De copie tous les dossiers (*.txt) des textes de et dossiers (*.mp3) de MP3 de dans le répertoire de travail au répertoire racine :

cp *.mp3/

Cet exemple démontre également l'utilisation des caractères de carte d'invitation une manière simple de sélectionner les dossiers relatifs multiples (" ; *" ; dénote n'importe quel ordre des caractères). La plupart des coquilles mettent en application les possibilités de base de la configuration avec un modèle comme ceci, qui leur permettent d'exécuter des commandes sur des groupes d'articles avec les noms semblables et d'analyser parfois les cordes simples du texte.

Bien que chaque langue scripting de coquille soit différente, il y a un certain nombre de dispositifs additionnels qui sont souvent fournis. On est un mécanisme pour manoeuvrer une certaine forme de valeurs appelées des variables en d'autres termes, qui peuvent être insérées ailleurs dans le manuscrit aux endroits spécifiques. Par exemple, ce manuscrit copie tous les .mp3 à partir de l'annuaire courant à l'annuaire appelé par le " variable ; fuzzy" ; :

cp *.mp3 $fuzzy

En changeant la valeur du " variable ; fuzzy" ; , l'utilisateur peut spécifier à où les dossiers sont copiés. Cependant, la réécriture d'un manuscrit pour changer la définition d'une variable chaque fois que le manuscrit est couru serait un ennui, ainsi des langues scripting soutiennent en général également les variables spéciales qui permettent d'accéder à tous les arguments passés au manuscrit sur la ligne de commande. Par exemple, $1 par $9 se rapportent aux neuf premiers arguments donnés à un manuscrit de shell Bourne, De même que font %1 par %9 dans des fichiers séquentiels de DOS. En outre, les variables internes d'une coquille sont souvent intégrées avec la notion du système d'exploitation des variables d'environnement de de par-processus ou de par-session

Un autre dispositif commun des langues scripting de coquille est une certaine manière de traiter les codes retour de , qui sont des nombres retournés des programmes exécutés pour indiquer s'ils ont réussi ou ont échoué. Dans le shell Bourne, Par exemple, les moyens du && b de a de notation à d'abord exécutent a, puis exécutent b seulement si a réussissait.

Beaucoup de coquilles modernes fournissent également de divers dispositifs habituellement trouvés seulement dans des langages de programmation d'usage universel de plus sophistiqué que comme commande-coulent des constructions ( si , tandis que , goto), variables mutables, les commentaires , les sous-routines de et ainsi de suite. Avec ces sortes de dispositifs disponibles, il est parfois possible d'écrire des applications raisonnablement sophistiquées comme manuscrits de coquille, bien que naturellement les systèmes plus exigeants, plus complexes ou à grande échelle exigent habituellement des langages de programmation plus puissants. Bien que les coquilles soient puissantes de leur manière, elles ont peu de mécanismes structurants, commandes intégrées limitées, et sont généralement interprétées relativement lentement.

D'autres langues scripting

voient également :

Scripting de la langue

Pour que les tâches considérées trop grandes ou le complexe soit confortablement manipulé avec les manuscrits de coquille ordinaires, mais pour ce que les avantages d'un manuscrit sont souhaitables et les frais généraux de développement d'un véritable, compilé langage de programmation seraient désavantageux, beaucoup de langues scripting puissantes ont été présentées. Les détails de ce qui sépare des langues scripting des langages de programmation à niveau élevé est une source fréquente de discussion. < ! -- ce peu semble spéculatif, car il y a souvent beaucoup d'autres raisons citées : " ; Cependant, des manuscrits d'entretien de système de noyau, qui pourraient autrement être écrits dans une telle langue, continuent à être écrits comme manuscrits de coquille, car ils ne peuvent pas toujours se fonder sur la présence de la langue scripting appropriée engines." ; -->

Avantages

Souvent, l'inscription d'un manuscrit de coquille est beaucoup plus rapide qu'écrivant le code équivalent dans d'autres langues de programmation ou scripting. Comme avec d'autres langues interprétées, les manuscrits de coquille n'ont aucune étape de compilation, ainsi le manuscrit peut être exécuté rapidement tandis que l'élimination des imperfections .

Inconvénients

Using des manuscrits de coquille peut également avoir un certain nombre d'inconvénients significatifs. Un inconvénient significatif d'employer des manuscrits de coquille est qu'ils peuvent courir lentement en raison de la nécessité de créer potentiellement beaucoup de nouveaux sous-processus pour chacune des nombreuses commandes exécutées. Quand le travail d'un manuscrit peut être accompli en installant une canalisation dans laquelle les commandes efficaces du filtre effectuent la majeure partie du travail, le ralentissement est minimal. Mais si un manuscrit de coquille doit effectuer différentes actions multiples sur beaucoup de différentes données élémentaires, ayant pour résultat le multiple bifurque pour chaque commande appelée pour effectuer chaque action, le manuscrit pourrait être des ordres de grandeur plus lents qu'un programme compilé conventionnel (dans ce que ces mêmes actions pourraient exiger mais des instructions simples de processeur).
  • Les manuscrits simples de sh peuvent être tout à fait compatibles avec la chaîne extrêmement diverse d'Unix, Linux, et logiciels d'exploitation de schéma, versions en, et utilités de système - mais des manuscrits de coquille plus complexes peuvent échouer en raison des nombreuses différences subtiles entre les coquilles, les utilités, et d'autres éléments cruciaux. Le mur de Larry de du Perl a célèbre écrit ce " ; Il est plus facile de mettre en communication une coquille qu'une coquille script." ;
  • De même, des manuscrits plus complexes peuvent fonctionner dans les limitations de la langue scripting de coquille elle-même ; les limites le rendent difficile d'écrire le code de qualité et les prolongements par de diverses coquilles pour améliorer des problèmes avec la langue originale de coquille peuvent rendre des problèmes plus mauvais, voient par exemple le " ; Csh programmant Harmful" considéré ;.

    Voir également

    Windows PowerShell
    Centre serveur de manuscrit de Windows de
    Shebang de (Unix)
  • .

    Random links:Anneau de mariage | Objet compact massif de halo | Camelot (musical) | 8ème Rue (station de SEPTA) | GreekFest | Shell_script