Non, c'est l'inverse. Il n'y a pas de données structurées ^ H ^ H ^ H. Il n'y a que du texte.
Une grande partie de la philosophie Unix est basée sur l'idée de sortir du texte et d'accepter du texte en entrée. Vous voudrez peut-être envisager de lire " L'art de la programmation Unix ", qui a une belle explication à ce sujet.
Ne vous méprenez pas: je comprends votre point et je sais ce que vous essayez de faire. Il y a des choses comme les interprètes interactifs de Ruby et Python, qui peuvent être utilisés comme un shell, mais ils ne sont pas aussi conviviaux pour les tâches de base que Bash. Essayez de changer de répertoire, par exemple.
De plus, utiliser des objets dans un shell n'est pas tout cela. Si seulement votre shell le supportait, sous Unix, vous seriez à perte. Tous les outils de manipulation de texte Unix standard devraient être modifiés, comme grep, awk, sed, etc.
Je pense qu'il y a eu une tentative de créer quelque chose comme ça il y a quelques années, mais je ne me souviens pas du nom et je n'en ai pas entendu parler depuis longtemps. Ça ne va probablement pas décoller.
ls(1)
. Complètement inutile.Il y a en fait un projet appelé Pash qui vise à implémenter PowerShell (en plus de Mono), mais il semble avoir calé.
la source
Il y a un projet, dont l'objectif partage la similitude avec PowerShell: Hotwire . Il combine sh normal avec des scripts python et un environnement fenêtre / graphique. Vous pourriez lui donner un coup d'oeil.
Il est basé sur un pipeline orienté objet que vous pouvez étendre avec vos propres objets en encapsulant des programmes existants ou en utilisant des bibliothèques Python.
la source
PowerShell est devenu open-source en 2016. Depuis lors, il devient de plus en plus multi-plateforme. Le code source est disponible sur GitHub et sont donc des packages d'installation pour un certain nombre de systèmes de type UNIX.
la source
Je pense que vous pourriez accomplir la plupart de cela en écrivant un tas de scripts interprétés (ou compilés), puis en les invoquant dans le shell de l'interpréteur, qui retournera ou préservera vos objets et ainsi de suite si vous le souhaitez.
Vous pouvez le faire dans au moins Ruby, Perl, Python, Haskell (par exemple, GHCi), JavaScript (par exemple, node.js), Matlab et certainement d'autres langues ...
la source
Une autre réflexion trois ans plus tard: il est possible de représenter un objet avec un flux de texte en utilisant XML ou JSON. Je préfère JSON (plus simple), et, en effet, il existe des projets pour fournir le support JSON des utilitaires * NIX classiques. Par exemple: https://github.com/step-/JSON.awk
Un problème avec l'utilisation d'un modèle de type objet pour les programmes NIX classiques comme AWK est qu'ils ne prennent vraiment pas en charge OO. Par exemple, alors qu'AWK possède des tableaux associatifs, les tableaux ne sont pas multidimensionnels (chaque élément d'un tableau AWK doit être un nombre ou une chaîne; un tableau n'est pas autorisé à être un objet tableau dans AWK).
la source