И что, он будет нормально работать с линуксовыми утилитами типа coreutils? И будет под линуксом нормально выполнять команды нужные для всяких железок типа аналога ifconfig?
А вообще PowerShell плох как минимум тем что чудовищно тормозной. Например где GNU find просканирует всю файловую систему за пару десятков секунд, powershell-скрипт с аналогичной функциональностью будет тупить может быть часами.
И что, он будет нормально работать с линуксовыми утилитами типа coreutils? И будет под линуксом нормально выполнять команды нужные для всяких железок типа аналога ifconfig?
А вообще PowerShell плох как минимум тем что чудовищно тормозной.
Ага, я так и подумал, и поэтому не стал его пробовать. У меня задача написать скрипт, который по горячей клавише будет переключаться в другое приложение. Каждый раз для этого ждать запуск PowerShell - не по моему темпераменту. Уже написал на bash, расходимся :)
proc unknown (для интерактивной среды) делает exec, а exec умеет редиректы. Не совсем как в sh, например, ls etc/|wc -l (без пробелов) не сработает ожидаемым образом. Всякое 9< /file-number-nine.txt тоже нельзя, как и < <(echo my stdout is /proc/self/fd).
unknown вызывает вызывает ф-цию tcl exec.. который не совсем (совсем не) аналог exec() :) а внимательно парсит аргументы, строит конвеер используя dup2, делает подстановки в/из открытых потоков и переменных и так далее.. То есть конвеер он строить имеет, перехватывать и перенаправлять стандартные stdin/stdout/stderr тоже.
до нормальных функций шела нужны ещё (во первых) работа с сигналами - по имеющимся сведениям, с этим должен справляться пакет Tix, сам не использовал, не гарантирую. :-) И ещё взаимодействие с порождёнными/дочерними шелами (когда из шел вызвал процесс, а он вызвал другой шел) - в них надо много чего унаследовать помимо env.
из любого языка имеющего REPL можно сделать аналог shell. Насколько будет удобно,привычно и сколько надо допиливать это уже другой вопрос. :-)
это всё ни разу не функции и задачи системного шел
может это и недостаток *nix :-) но машина может быть без клавиатуры и любого DE. или с тремя клавами и 5-ю скринами. Оттуда и взялись d-bus и подобные. Но это опять-же это не шел, причём тут он ??
тут блин чем не заменяй, хоть power-щель, хоть питон, хоть кто..unix-шел не в курсе хот-кеев просто физически
[alexv@ip-192-168-102-93 ~]$ which perl
/usr/bin/perl
[alexv@ip-192-168-102-93 ~]$ which python
/usr/bin/python
[alexv@ip-192-168-102-93 ~]$ which sh
/usr/bin/sh
[alexv@ip-192-168-102-93 ~]$ which tclsh
/usr/bin/which: no tclsh in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which ruby
/usr/bin/which: no ruby in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which java
/usr/bin/which: no java in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which php
/usr/bin/which: no php in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which node
/usr/bin/which: no node in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which go
/usr/bin/which: no go in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$ which powershell
/usr/bin/which: no powershell in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/alexv/.local/bin:/home/alexv/bin)
[alexv@ip-192-168-102-93 ~]$
Эти три варианта ты можешь найти практически на любой юникс-системе от AIX до NetBSD, а на Windows это можно легко поставить. Остальное - создание себе гемора на пустом месте.
Какой же ты плоский, одномерный. Когда ты учил Qt, то трещал о них в каждом треде. Учил rust пищал о нём где надо и не надо. Сейчас ты учишь python и таскаешься с ним по всем темам. Со стороны видно какой ты. Ты этого не понимаешь. И ты не ответишь анонимусу, я гарантирую это. Ты предсказуемая амёба.
А вообще PowerShell плох как минимум тем что чудовищно тормозной.
Например где GNU find просканирует всю файловую систему за пару десятков секунд, powershell-скрипт с аналогичной функциональностью будет тупить может быть часами.
Ну можно сравнить PowerShell с cmd на одной и той же задаче, cmd по скорости сильно выигрывает. Проблема лишь в крайней убогости cmd и виндовых утилит/команд типа type, find (который на самом деле недо-grep), for (который немного похож на find) и тд.
В общем по-моему PowerShell это хрень какая-то. И скриптовый интерпретатор не очень и как интерактивная консоль плохо. Мне кажется тот же tclsh и то лучше как интерактивная консоль, раз уж туда пайпы добавили.
Ты ссылку, которую мне прислал, сам открывал хоть? Там тебе с разбегу предлагают создать пакет с тиклем для аикса. Логично, че: дохлый язык под дохлую операционку.
А какой? 2? 3? Для простого быстрого walk по файлам второму питону надо либу (!!!), потому что всё очень плохо в os.walk. Третий питон есть не везде (пока). Да и лучше на го или хаскелле запилить бинарник, он точно везде будет работать так как надо.