История изменений
Исправление Zmicier, (текущая версия) :
Вот представь себе, если бы он был аналогичен Get-Process из поша, у которого их сто с лишним.
Ну уж чем богаты. Позвольте, я не буду сейчас выписывать все 119 (сто девятнадцать) колонок которые есть у ps(1)
из procps-ng
(который обычно стоит в ГНУ, и которым выше я и пользовался), тем паче что часть из них — синонимы других, а выберу для иллюстрации штук шестнадцать, ОК?
$ export PS_FORMAT='%cpu,time,nice,pri,%mem,rsz,vsz,size,pid,ppid,user,group,fuser,fgroup,tty,args'
При этом тебе надо гарантировать, что все данные корректны, что будет, если в имени процесса, например, есть пробельные символы?
То это поле либо будет последним, либо разделителем колонок будет другой символ — не пробел.
И как потом этот скрипт читать, с номерами?
«Константы? Не, не слышал».
$ Priority=4
$ VSize=7
Собственно с этой писательской парадигмы ПШ и содран.
Конечно нет, пош с нее не содран, а сделан как раз обратным образом.
Я не говорю о том, как МС ПШ сделан — сделан он разумеется с точностью до наоборот — вместо простого, но универсального инструмента, дико сложная вещь в себе. Я говорю о том, с чего содран интерфейс — то есть язык. Вот с этого:
$ ps -e | awk "\$$Priority > 7" | sort -nk $VSize | tail -5 | awk "{ vsz+=\$$VSize }; END { print vsz / NR }"
И это будет жуткий вырвиглаз.
Да, он самый, плюс это еще и очень плохо расширяется. Одноразовая вещь, короче — написал, прочитал вывод, и выкинул. Я поэтому эту парадигму и не люблю.
И почему вы ее превозносите, когда ее самую внезапно берет на вооружение уже Микрософт — не понимаю. Любовь ко всему, что бы ни сделал МС?
Это абсолютно все системное апи. Командлеты - это обертки вокруг системных вызовов, которые дают более удобный и лаконичный синтаксис, не более того.
То есть ограниченный набор утилит, написанный специально для МС ПШ. «Выбор желаемых колонок по названию и сортировка», но не для одного ps(1)
, а для много большего числа программ, только и всего.
Исходная версия Zmicier, :
Вот представь себе, если бы он был аналогичен Get-Process из поша, у которого их сто с лишним.
Ну уж чем богаты. Позвольте, я не буду сейчас выписывать все 119 (сто девятнадцать) колонок которые есть у ps(1)
из procps-ng
(который обычно стоит в ГНУ, и которым выше я и пользовался), тем паче что часть из них — синонимы других, а выберу для иллюстрации штук шестнадцать, ОК?
$ export PS_FORMAT='%cpu,time,nice,pri,%mem,rsz,vsz,size,pid,ppid,user,group,fuser,fgroup,tty,args'
[/cpde]
> При этом тебе надо гарантировать, что все данные корректны, что будет, если в имени процесса, например, есть пробельные символы?
То это поле либо будет последним, либо разделителем колонок будет другой символ — не пробел.
> И как потом этот скрипт читать, с номерами?
«Константы? Не, не слышал».
$ Priority=4
$ VSize=7
Собственно с этой писательской парадигмы ПШ и содран.
Конечно нет, пош с нее не содран, а сделан как раз обратным образом.
Я не говорю о том, как МС ПШ сделан — сделан он разумеется с точностью до наоборот — вместо простого, но универсального инструмента, дико сложная вещь в себе. Я говорю о том, с чего содран интерфейс — то есть язык. Вот с этого:
$ ps -e | awk "\$$Priority > 7" | sort -nk $VSize | tail -5 | awk "{ vsz+=\$$VSize }; END { print vsz / NR }"
И это будет жуткий вырвиглаз.
Да, он самый, плюс это еще и очень плохо расширяется. Одноразовая вещь, короче — написал, прочитал вывод, и выкинул. Я поэтому эту парадигму и не люблю.
И почему вы ее превозносите, когда ее самую внезапно берет на вооружение уже Микрософт — не понимаю. Любовь ко всему, что бы ни сделал МС?
Это абсолютно все системное апи. Командлеты - это обертки вокруг системных вызовов, которые дают более удобный и лаконичный синтаксис, не более того.
То есть ограниченный набор утилит, написанный специально для МС ПШ. «Выбор желаемых колонок по названию и сортировка», но не для одного ps(1)
, а для много большего числа программ, только и всего.