LINUX.ORG.RU

Состоялся релиз PowerShell 7

 ,


0

0

4 марта вышла в свет новая версия PowerShell 7.

PowerShell представляет собой «кроссплатформенный фреймворк автоматизации ПО и конфигурирования, оптимизированный для структурированных данных, REST API и объектных моделей», который включает в себя командную оболочку, объекто-ориентированный язык и набор средств для исполнения сценариев и управляющих модулей.

Из новых возможностей отмечены:

  • Параллельная обработка объектов в ForEach-Object
  • Новые операторы: тернарный условный оператор ?:; управляющие операторы || и &&, аналогичные таким же операторам в bash; условные NULL-операторы ?? и ?=, отдающие значение справа в случае, если значение слева равно NULL
  • Улучшенное представление описания ошибок и командлет Get-Error для вызова детального описания ошибок
  • Вызов ресурсов службы настройки требуемого состояния (DSC) непосредственно из PowerShell (в экспериментальной стадии)
  • Улучшенная обратная совместимость с Windows PowerShell

Версия доступна к использованию дистрибутивами Linux, поддерживающими .NET Core 3.1, сообществом предоставлены пакеты для Arch и Kali Linux.

Snap-пакет в Ubuntu 16.04 вызывает ошибку сегментирования, в связи с чем предлагается установка в поставке DEB или tar.gz.

>>> Подробности

★★★

Проверено: cetjs2 ()

представляет собой «кроссплатформенный фреймворк автоматизации ПО и конфигурирования, оптимизированный для структурированных данных, REST API и объектных моделей», который включает в себя командную оболочку, объекто-ориентированный язык и набор средств для исполнения сценариев и управляющих модулей.

что-то мне это напоминает… ах-да, Nero. Тот тоже когда-то был просто записывалкой CD-дисков, но потом что-то пошло не так

Deleted
()
Ответ на: комментарий от Deleted

Потому что в PowerShell нет смысла, если 99% утилит, которыми ты пользуешься в реальной жизни, ничего не знают ни о каких объектах и выводят текст в свободной форме.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

Новые операторы: тернарный условный оператор ?:; управляющие операторы || и &&, аналогичные таким же операторам в bash;

Этого до сих пор не было?

dexpl ★★★★★
()
Ответ на: комментарий от intelfx

В никсах есть свой пауэршелл, perl называется.

  • Хочешь просто и удобно запускать процессы и управлять ими, как в шелле - пожалуйста.
  • Хочешь обрабатывать выдачу утилит в свободной форме, не городя огород из sed и awk - легко.
  • Наворотить рядом бизнес-логику - без проблем, ЯП общего назначения без детских болезней POSIX-шелла к твоим услугам
  • ООП - да на здоровье
  • Хочешь никсовые системные вызовы подергать - они встроены прямо в язык как функции, как будто это C
  • REST API и прочие модные штуки - весь CPAN к твоим услугам
annulen ★★★★★
()
Последнее исправление: annulen (всего исправлений: 2)
Ответ на: комментарий от steemandlinux

Чтобы без боли всё проходило, внутри одной ВМ без пайпов. Узнать размер, конвертнуть, математика, потоки, pinvoke. Язык мультипарадигмальный.

anonymous
()

Параллельная обработка объектов в ForEach-Object

ну наконец-то блин )

Улучшенная обратная совместимость с Windows PowerShell

а что было сломано?

Версия доступна к использованию дистрибутивами Linux, поддерживающими .NET Core 3.1

o_O попробую завтра прочитать подробнее, на свежую голову и с кофе. .NET Core в моём линуксе?

router ★★★★★
()
Ответ на: комментарий от annulen

В никсах есть свой пауэршелл, perl называется.

Чувак, ты укурен в хлам. Во взаимодействии процессов perl отстаёт даже от bash

ООП - да на здоровье

Доо, рассказывай. Один раз удалить гланды через жопу because i can - ну ладно, пусть даже признак мастерства. Но ставить это на поток - полный бред

Хочешь обрабатывать выдачу утилит в свободной форме, не городя огород из sed и awk - легко.

Юноша, вы сами пробовали? Я да, лет 10 писал на перле. Даже тупо перехватить stdout + stderr + rc не каждый сможет

REST API и прочие модные штуки - весь CPAN к твоим услугам

… главное чтобы автор модуля ещё был жив

P.S. не, я люблю perl, но он уже немного устарел. сейчас нашевсё - это питон, и пора смотреть в сторону go

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от Im_not_a_robot

Там вообще много нелогичного, особенно вывод. Можно перенаправить stdout и stderr и всё равно писать на консоль

Ещё работа с net объектами унаследовала тихий ужас и костыли с оркестром.

Но для винды это первый вменяемый шел

router ★★★★★
()
Ответ на: комментарий от anonymous

с этим лёня горшков отлично справляется и сам

но повершел кстати довольно удобен, когда работа идёт именно с объектами

router ★★★★★
()
Ответ на: комментарий от router

NET Core в моём линуксе?

Доброе утро? Неткор с самого начала задумывался как кроссплатформенный.

Правда на практике они не все виндовс специфичное выкинули, остался ком и некоторые вещи типа именованных мутексов.

Midael ★★★★★
()
Ответ на: комментарий от intelfx

Потому что в PowerShell нет смысла, если 99% утилит, которыми ты пользуешься в реальной жизни, ничего не знают ни о каких объектах и выводят текст в свободной форме.

да, с текстом в конвеере он работает мягко говоря неудобно

но для многих задач в powershell изначально есть namespace’ы и можно добавить свои. скажем, отфильтровать процессы по использованию памяти выше порога - легко, а в баше будем привычно дёргать awk/perl

router ★★★★★
()
Ответ на: комментарий от router

Во взаимодействии процессов perl отстаёт даже от bash

В каком месте?

Даже тупо перехватить stdout + stderr + rc не каждый сможет

Вот уж хитрость - IPC::Open3 заюзать, который из коробки идет. А если нужен только stdout или только stderr или все вместе без разделения - то и open достаточно

Один раз удалить гланды через жопу because i can - ну ладно, пусть даже признак мастерства.

Зачем такие муки, когда есть куча простых в использовании ООП-модулей.

главное чтобы автор модуля ещё был жив

Старые модули либо работают как часы, либо для них есть современные замены

annulen ★★★★★
()
Ответ на: комментарий от annulen

В каком месте?

Во всех. Как ты себе представляешь конвеер на перле?

Вот уж хитрость - IPC::Open3 заюзать, который из коробки идет

во сколько строк уложишься?

А если нужен только stdout или только stderr или все вместе без разделения - то и open достаточно

Именно поэтому его все и используют

Старые модули либо работают как часы

Ключевое слово - старые. Когда мне понадобился экспорт в эксель, подошёл один модуль из пачки. Не помню навскидку, чего ещё мне не хватало, но с отсутствием готовых модулей сталкивался всё чаще и в итоге свалил в питон

router ★★★★★
()

В тексте новости умудрились ни разу не упомянуть слово Microsoft (кроме тегов). Это успех!

hobbit ★★★★★
()
Ответ на: комментарий от router

Как ты себе представляешь конвеер на перле?

А я субшелл считаю конвеером на перле, потому что с точки зерния пользователя языка все работает прозрачно

Именно поэтому его все и используют

Так а в чем проблема? Нормальные процессы выводят данные в stdout, а текст ошибки можно прочитать из $!

Когда мне понадобился экспорт в эксель, подошёл один модуль из пачки.

Но это не самая юниксовая задача :)

annulen ★★★★★
()
Ответ на: комментарий от router

Как ты себе представляешь конвеер на перле?

Как-то так

open(my $pipe, '/some/program-with-huge-output | grep pattern |');
while (<$pipe>) {
   ...
annulen ★★★★★
()
Ответ на: комментарий от annulen

А я субшелл считаю конвеером на перле, потому что с точки зерния пользователя языка все работает прозрачно

В смысле open «a | b | c |» ? А если в разрыве между B и C хотелось бы текст обработать?

Так а в чем проблема? Нормальные процессы выводят данные в stdout, а текст ошибки можно прочитать из $!

Ни в чём, кроме того, что даже в баше это удобнее

Но это не самая юниксовая задача :)

я был согласен на odt, но для него рабочего модуля не нашёл вовсе

А, вспомнил, ещё с русскими буквами в перле камасутра. У меня в вики есть целая страница по ударам в шаманский бубен, чтобы просто перекодировать ввод и вывод, чтобы снаружи была локаль ОСи, а внутри скрипта - utf-8

router ★★★★★
()
Ответ на: комментарий от router

я был согласен на odt, но для него рабочего модуля не нашёл вовсе

Точнее, один нашёл, но он требовал установки openoffice

router ★★★★★
()
Ответ на: комментарий от router

А если в разрыве между B и C хотелось бы текст обработать?

Обрабатываешь и пишешь в хэндл от второй половины пайпа

даже в баше это удобнее

Но это наверное единственное, что в баше вообще есть хорошего. Он запускает процессы и делает это прекрасно. В перле немного более громоздко, зато намного больше возможностей по обработке промежуточного результата, а не только свалить весь вывод в одну переменную и потом в кого-то ее выплюнуть

annulen ★★★★★
()
Ответ на: комментарий от router

чтобы снаружи была локаль ОСи

Но в 21-ом веке это только Эдику нужно

annulen ★★★★★
()
Ответ на: комментарий от router

Что касается xls, то можно какой-нибудь antixls или xls2csv вызвать, если надо что-то простое сделать. А если сложное, то это уже как бы и не админская задача, тут и пауэршелл не поможет

annulen ★★★★★
()
Ответ на: комментарий от router

даже в баше это удобнее

Погоди-ка, удобнее чем

my $stdout = `program --arg1 ...`;
my $stderr = $!;

?

annulen ★★★★★
()

интересно посмотреть на персонажей, которые этим говном пользуются…

anonymous
()
Ответ на: комментарий от anonymous

PS неговнистее системд, пульсаудио, иксов, вяленого и прочего говна. Вполне себе такое говно, очень даже съедобное.

anonymous
()

Ждём вопросов про то как в Kali запустить nmon через powershell. Есть тут больные на голову которые это используют на постоянной основе именно как командную оболочку?

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Только вчера обновился до rc3, а уже релиз. Отличная для меня новость.

anonymous
()
Ответ на: комментарий от LINUX-ORG-RU

Чем оно хуже того же баша? Однокуйственная параша.

anonymous
()
Ответ на: комментарий от LINUX-ORG-RU

Есть тут больные на голову которые это используют на постоянной основе именно как командную оболочку?

Конечно, можешь меня считать больным на голову. По мне, так удобней, чем bash. Никаких grep’ов, sed’ов и awk’ов не нужно.

anonymous
()

Пауэрщель с наглухо укуренным синтаксисом (но зато не так как у всех! NIH!) не нужна.

Deleted
()
Ответ на: комментарий от anonymous

Неет. Даже близко не стояло. Perl - стройный логичный язык с таким же синтаксисом (я на нём писал на исходе доткомов)

Примерно то же самое ощущение («штоааа!!?? Да они упоротые!!») я испытал, когда пришлось использовать lsi megacli (которым можно сделать всё, что угодно, но от синтаксиса необратимо портится мозг)

Deleted
()

Зачем это нужно когда есть git-bash?

Шелл нужен чтобы команды выполнять а не наворачивать убогое нечитаемое ооп-говнище. Ну а скрипты проще на питоне писать.

PS: Жду 3й шелл от МС, мб хоть тогда у них получится.

KillTheCat ★★★★★
()
Ответ на: комментарий от anonymous

Сказал аноним, значит, это несомненно так :)

Deleted
()

SystemD+PowerShell = замена bash

все как вы хотели!

anonymous
()
Ответ на: комментарий от KillTheCat

Шелл нужен чтобы команды выполнять а не наворачивать убогое нечитаемое ооп-говнище. Ну а скрипты проще на питоне писать.

Как Боженька зачитал.

anonymous
()
Ответ на: комментарий от Deleted

Perl - стройный логичный язык с таким же синтаксисом

Ну и чем синтаксис pwsh сильно отличается от perl? Такие же циклы, такие же автоматические переменные, классы почти один в один.

anonymous
()

самый ТРУ шелл - это /usr/bin/true

buratino ★★★★★
()

PowerShell представляет собой

способ понастольгировать о временах Pentium I, когда даже запуска оболочки нужно было ждать несколько секунд. (Хотя не уверен, что тогда всё было так плохо. Кажется, что запускалось быстрее.)

PowerShell 7
Power
7
Новые операторы: [..], управляющие операторы || и &&,

Всё, что нужно знать об этом поделии и такой манере нумеровать версии в принципе.

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.