Нет, все наоборот. Там нет ложки ^ H ^ H ^ Структурированные данные. Есть только текст.
Большая часть философии Unix основана на идее вывода текста и принятия текста в качестве ввода. Возможно, вы захотите прочитать « Искусство программирования Unix », в котором есть хорошее объяснение этого.
Не поймите меня неправильно: я понимаю вашу точку зрения и знаю, к чему вы стремитесь. Есть такие вещи, как интерактивные интерпретаторы Ruby и Python, которые можно использовать в качестве оболочки, но они не так дружелюбны для базовых задач, как Bash. Попробуйте изменить каталог, например.
Кроме того, использование объектов в оболочке - это еще не все. Если бы только ваша оболочка поддерживала это, в Unix вы были бы в недоумении. Все стандартные инструменты для работы с текстом в Unix должны быть изменены, такие как grep, awk, sed и т. Д.
Я думаю, что была попытка создать что-то подобное несколько лет назад, но я не могу вспомнить название и давно не слышал об этом. Это, вероятно, не собирается снимать.
ls(1)
. Совершенно бесполезно.На самом деле есть проект под названием Pash, который нацелен на реализацию PowerShell (поверх Mono), но, похоже, он застопорился.
источник
Есть проект, цель которого сходство с PowerShell: Hotwire . Он сочетает в себе обычный sh с Python-скриптингом и оконным / графическим окружением. Вы могли бы взглянуть на это.
Он основан на объектно-ориентированном конвейере, который вы можете расширять своими собственными объектами, оборачивая существующие программы или используя библиотеки Python.
источник
PowerShell стал открытым исходным кодом в 2016 году. С тех пор он становится все более мультиплатформенным. Исходный код доступен на GitHub, как и установочные пакеты для ряда UNIX-подобных систем.
источник
Я думаю, что вы могли бы сделать большую часть этого, написав несколько интерпретируемых (или скомпилированных) скриптов, затем вызывая их в оболочке интерпретатора, которая будет возвращать или сохранять ваши объекты и так далее, если вы захотите.
Вы можете сделать это как минимум на Ruby, Perl, Python, Haskell (например, GHCi), JavaScript (например, node.js), Matlab и, конечно, других языках ...
источник
Спустя три года появилась еще одна мысль: можно представить объект с помощью текстового потока, используя XML или JSON. Я предпочитаю JSON (более простой), и, действительно, существуют проекты, обеспечивающие поддержку классических * NIX утилит JSON. Например: https://github.com/step-/JSON.awk
Одна из проблем использования модели объектного типа для классических * NIX-программ, таких как AWK, заключается в том, что они действительно не поддерживают ОО. Например, хотя в AWK есть ассоциативные массивы, массивы не являются многомерными (каждый элемент в массиве AWK должен быть числом или строкой; массив не может быть объектом массива в AWK).
источник