Question

J'utilise bash, et ont fait depuis plus d'une décennie - mais parfois je me demande s'il y a eu d'importants nouveaux développements dans le monde des coquilles Linux

.

Quelques années Microsoft a publié PowerShell, qui semblait très intéressant. Y at-il d'innovation comparable passe dans des coquilles Linux?

Était-ce utile?

La solution

Vous pouvez exécuter PowerShell sur Linux via Pash . Il utilise Mono la façon dont PowerShell utilise .NET.

Autres conseils

Vous vous rendez compte bash 4 a été publié très récemment avec une charge de nouvelles fonctionnalités et des ajouts linguistiques?

  • Options Shell globstar (**/foo) effectue une recherche récursive, dirspell fixe au cours de fautes de frappe l'expansion du chemin.
  • tableaux de Associatif, des chaînes de carte à chaînes, au lieu de seulement le nombre de chaînes.
  • L'option shell autocd permet de changer les répertoires en tapant simplement le chemin du répertoire au lieu d'avoir à mettre cd devant.
  • coprocess
  • &>> et les opérateurs de redirection |& qui redirigent les deux stdout et stderr
  • Les charges d'ajouts à builtins existants pour la commodité de script amélioré.

Départ:

Je prendrais un coup d'œil à zsh ou fishshell.

L'une des caractéristiques les moins vantés de Bash (et plusieurs autres obus) est la possibilité d'écrire vos propres chargeables, et que le shell les exécuter comme builtins.

Lets vous dites écrivez le chargeable « sur » .. et vous voulez que cela fonctionne comme ceci:

on node 123 run some command
on class nodes run some command
on all nodes run some command

... etc ..

Vous pouvez suivre des exemples simples sur la façon d'écrire un chargeable, activez alors comme un bash construit via -f activer / path / to / chargeable loadable_name

Dans notre cas, activez -f / opt / bash / chargeables / sur le

... dans votre bashrc, et vous l'avez.

Donc, si vous voulez avoir bash interpréter votre spiffy nouveau langage natif, vous pouvez écrire un chargeable nommé « utilisation » ou « switch_to », puis modifiez l'analyseur pour charger une grammaire / exécution différente si une variable d'environnement a été mis en .

i.e..

#/bin/bash

switch_to my-way-cool-language

funkyfunc Zippy(int p) [[
   jive.wassup(p) ]]

La plupart des gens sont pas va vouloir pirater leur coquille, cependant. Je ne voulais souligner que les installations existent pour prendre Bash et en faire la façon dont vous le voulez, sans jouer trop avec le code de base.

Voir / path-to-bash-source / exemples / chargeables, vous pourriez être en mesure d'obtenir que de voler où vous travaillez, puisque vous utilisez encore Bash.

Je pense que la "coquille d'origine améliorée" est ksh93 . bash a vu le jour à un moment où le code source de ksh était propriétaire; si ksh avait été open source alors, il pourrait ne pas avoir été jugé nécessaire d'avoir un nouveau shell (mais avec la FSF, vous ne savez jamais). ksh mérite d'être étudiée, en particulier pour sa capacité à être étendue grâce à des modules de C, mais pas une victoire claire sur bash. La saisie semi-automatique de bash est nettement supérieure, ce qui peut être suffisant pour faire bash une victoire au classement général. Dans tous les cas bash et ksh ont fait des efforts considérables pour converger, si les différences sont mineures.

L'autre shell intéressant est zsh , qui tente d'être tout ce qui est ksh tout en incluant csh. Depuis que je ne ai jamais vu un point ou utiliser pour csh, je ne suis pas la bonne personne pour plaider en faveur zsh. Je signale une incompatibilité inhabituelle: par défaut, dans zsh $var variable toujours déplie sur une seul jeton, même si elle contient des espaces. Ce comportement est incompatible avec toutes les autres coquilles dérivées sh, et il est parfois peu pratique, mais vraiment il fait beaucoup plus de sens que l'original, et il sauve un enfer de beaucoup de citer.

csh a été la première coquille pour avoir le contrôle de l'emploi, mais dans mon esprit (et ses successeurs) a été remplacé par bash et ksh. Il n'a jamais été mucn amusant d'écrire des scripts dans.

Enfin, il y a beaucoup de petits coquillages conçus pour les disquettes de sauvetage (!) Et d'autres environnements spartiates, mais il semble que vous avez peu d'intérêt pour ceux-ci.

(En matière d'innovation, je dois ajouter que plus de la moitié des scripts que j'utilisés pour écrire les scripts shell sont maintenant les scripts de Lua. d'autres pourraient dire la même chose pour Python ou Ruby, ou dans la journée, Perl ou Tcl. Je pense que la véritable innovation est la migration loin de la coquille d'interaction programmable à la ligne de commande.)

Si vous êtes prêt à perdre la compatibilité de sh, vous pourriez envisager d'utiliser un langage de script comme Python ou Tcl comme shell. rlwrap peut être très pratique si l'interprète ne fournit pas l'édition de ligne, commande histoire, achèvement, etc.

Une philosophie en ce qui concerne les coquilles est qu'ils devraient d'abord être utilisés que pour relier les processus avec des fichiers ( ici est une page qui épouse cette approche ). Cela dit, les gens ont écrit un logiciel remarquablement complexe les utiliser.

Coquilles ne sont pas beaucoup plus que le Scheme Schell . Toute la puissance du schéma combiné avec la possibilité d'exécuter des commandes Unix et un interprète awk embarqué (écrit dans le schéma, bien sûr). Le seul inconvénient est qu'il a besoin d'un petit peu de patcher pour construire sur 64 bits Linux.

Il est pas exactement Bourne-shell, mais il est différent. Bien sûr, vous devez apprendre Scheme - Bonus

si vous aimez Ruby, vous pouvez utiliser rush (shell unix rubis, pas RIR)

voir la présentation ici

http: //www.slideshare. net / adamwiggins / pointe le rubis-coquille et unix-intégration bibliothèque

ou site web officiel pour voir d'autres exemples

http://rush.heroku.com/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top