История изменений
Исправление den73, (текущая версия) :
Далее, тут анонимус и другие написали, что в баше якобы не нужны вложенные списки. Ну это бред конечно, но я стараюсь особо не разговаривать с анонимусами, поскольку неясно, с кем лично ты говоришь, поэтому не ответил. Но, честно сказать, чтение man ps привело меня в ярость.
Я всегда считал, что юникс - это говно. Точнее говоря, я не считал так короткое время, когда после убогих bat-файлов узнал, что есть могущественный баш. Но вонь ощутилась очень быстро. Мне пришлось написать для «Кворума» сервер сборки. Он был на батниках, но написан под влиянием UNIX и были какие-то аналоги юниксовых текстовых программ. Но уже тогда стало ясно, что вот эта школьного уровня идея «выведи всё в строку а потом распарсь её» для серьёзных вещей не годится. Вывод в строку предназначен для чтения человеком, а не компьютером! А уж окончательно это стало ясно, когда зимой то ли 2014, то ли 2015 году моих знакомых в Питере взломали через уязвимость в bash. За 24 года не смогли сделать нормальный bash, да.
Давайте разберём насчёт вложенных структур, читая man ps.
Во-первых, ps -ejH выводит дерево процессов. Уровень дерева выражается в виде отступов. Удобно, да? С учётом того, что имена программ обрезаются, вывод этой команды практически полностью безполезен. Но вопрос не в том, а в том, что внезапно «простейшие» программы могут выдавать информацию в виде вложенных структур, и с ней придётся как-то работать, если она нужна, а нет ни нормального представления, ни простых инструментов. В лиспе или JS Это было бы выражено как вложенная структура данных - и с ней было бы тривиально работать.
Во-вторых, ключ, к примеру, p. «These options accept a single argument in the form of a blank-separated or comma-separated list». Что мы видим из этой цитаты? Что, во-первых, среди аргументов команды ps таки встречаются как минимум линейные списки. Поскольку в shell строка запуска ps и её аргументы - это уже список, получается, что параметр ключа -p - это список в списке. Т.е. команда ps -p «1 2» - это ничто иное, как двухуровневый список. Поскольку в говношелле нет двухуровневых списков, которые якобы не нужны, как вы мне тут вещаете, авторам ps пришлось создавать свой частный формат, кодить его, вписывать в мануал, и заставлять пользователей знать его конкретно для одного ключа одной команды, что потребует от них умения писать и читать этот формат. Если бы вместо shell был нормальный язык, было бы написано просто «These options accept a list».
Опция --sort требует уже двухуровневой структуры. Требуется задать по каким колонкам сортировать, и для каждой колонки ещё и порядок. Итого команда ps jax --sort=uid,-ppid,+pid является ничем иным, как трёхуровневым списком, в починенном тикле он бы выглядел как-то так:
ps jax --sort{uid{- ppid}{+ pid}}
# vs
ps jax --sort=uid,-ppid,+pid
Вот до какой степени нужно не уметь думать, чтобы говорить, что это не нужно, если нужность видна на первом же примере?
Исправление den73, :
Далее, тут анонимус и другие написали, что в баше якобы не нужны вложенные списки. Ну это бред конечно, но я стараюсь особо не разговаривать с анонимусами, поскольку неясно, с кем лично ты говоришь, поэтому не ответил. Но, честно сказать, чтение man ps привело меня в ярость.
Я всегда считал, что юникс - это говно. Точнее говоря, я не считал так короткое время, когда после убогих bat-файлов узнал, что есть могущественный баш. Но вонь ощутилась очень быстро. Мне пришлось написать для «Кворума» сервер сборки. Он был на батниках. Но уже тогда стало ясно, что вот эта школьного уровня поделка «выведи всё в строку а потом распарсь её» для серьёзных вещей не годится. А уж окончательно это стало ясно, когда зимой то ли 2014, то ли 2015 году моих знакомых в Питере взломали через уязвимость в bash. За 24 года не смогли сделать нормальный bash, да.
Давайте разберём насчёт вложенных структур, читая man ps.
Во-первых, ps -ejH выводит дерево процессов. Уровень дерева выражается в виде отступов. Удобно, да? С учётом того, что имена программ обрезаются, вывод этой команды практически полностью безполезен. Но вопрос не в том, а в том, что внезапно «простейшие» программы могут выдавать информацию в виде вложенных структур, и с ней придётся как-то работать, если она нужна, а нет ни нормального представления, ни простых инструментов. В лиспе или JS Это было бы выражено как вложенная структура данных - и с ней было бы тривиально работать.
Во-вторых, ключ, к примеру, p. «These options accept a single argument in the form of a blank-separated or comma-separated list». Что мы видим из этой цитаты? Что, во-первых, среди аргументов команды ps таки встречаются как минимум линейные списки. Поскольку в shell строка запуска ps и её аргументы - это уже список, получается, что параметр ключа -p - это список в списке. Т.е. команда ps -p «1 2» - это ничто иное, как двухуровневый список. Поскольку в говношелле нет двухуровневых списков, которые якобы не нужны, как вы мне тут вещаете, авторам ps пришлось создавать свой частный формат, кодить его, вписывать в мануал, и заставлять пользователей знать его конкретно для одного ключа одной команды, что потребует от них умения писать и читать этот формат. Если бы вместо shell был нормальный язык, было бы написано просто «These options accept a list».
Опция --sort требует уже двухуровневой структуры. Требуется задать по каким колонкам сортировать, и для каждой колонки ещё и порядок. Итого команда ps jax --sort=uid,-ppid,+pid является ничем иным, как трёхуровневым списком, в починенном тикле он бы выглядел как-то так:
ps jax --sort{uid{- ppid}{+ pid}}
# vs
ps jax --sort=uid,-ppid,+pid
Вот до какой степени нужно не уметь думать, чтобы говорить, что это не нужно, если нужность видна на первом же примере?
Исправление den73, :
Далее, тут анонимус и другие написали, что в баше якобы не нужны вложенные списки. Ну это бред конечно, но я стараюсь особо не разговаривать с анонимусами, поскольку неясно, с кем лично ты говоришь, поэтому не ответил. Но, честно сказать, чтение man ps привело меня в ярость.
Я всегда считал, что юникс - это говно. Точнее говоря, я не считал так короткое время, когда после убогих bat-файлов узнал, что есть могущественный баш. Но вонь ощутилась очень быстро. Мне пришлось написать для «Кворума» сервер сборки. Он был на батниках. Но уже тогда стало ясно, что вот эта школьного уровня поделка «выведи всё в строку а потом распарсь её» для серьёзных вещей не годится. А уж окончательно это стало ясно, когда зимой то ли 2014, то ли 2015 году моих знакомых в Питере взломали через уязвимость в bash. За 24 года не смогли сделать нормальный bash, да.
Давайте разберём насчёт вложенных структур, читая man ps.
Во-первых, ps -ejH выводит дерево процессов. Уровень дерева выражается в виде отступов. Удобно, да? С учётом того, что имена программ обрезаются, вывод этой команды практически полностью безполезен. Но вопрос не в том, а в том, что внезапно «простейшие» программы могут выдавать информацию в виде вложенных структур, и с ней придётся как-то работать, если она нужна, а нет ни нормального представления, ни простых инструментов. В лиспе или JS Это было бы выражено как вложенная структура данных - и с ней было бы тривиально работать.
Во-вторых, ключ, к примеру, p. «These options accept a single argument in the form of a blank-separated or comma-separated list». Что мы видим из этой цитаты? Что, во-первых, среди аргументов команды ps таки встречаются как минимум линейные списки. Поскольку в shell строка запуска ps и её аргументы - это уже список, получается, что параметр ключа -p - это список в списке. Т.е. команда ps -p «1 2» - это ничто иное, как двухуровневый список. Поскольку в говношелле нет двухуровневых списков, которые якобы не нужны, как вы мне тут вещаете, авторам ps пришлось создавать свой частный формат, кодить его, вписывать в мануал, и заставлять пользователей знать его конкретно для одного ключа одной команды, что потребует от них умения писать и читать этот формат. Если бы вместо shell был нормальный язык, было бы написано просто «These options accept a list».
Опция --sort требует уже двухуровневой структуры. Требуется задать по каким колонкам сортировать, и для каждой колонки ещё и порядок. Итого команда ps jax --sort=uid,-ppid,+pid является ничем иным, как трёхуровневым списком. Вот до какой степени нужно не уметь думать, чтобы говорить, что это не нужно, если нужность видна на первом же примере?
Исправление den73, :
Далее, тут анонимус и другие написали, что в баше якобы не нужны вложенные списки. Ну это бред конечно, но я стараюсь особо не разговаривать с анонимусами, поскольку неясно, с кем лично ты говоришь, поэтому не ответил. Но, честно сказать, чтение man ps привело меня в ярость.
Я всегда считал, что юникс - это говно. Точнее говоря, я не считал так короткое время, когда после убогих bat-файлов узнал, что есть могущественный баш. Но вонь ощутилась очень быстро. Мне пришлось написать для «Кворума» сервер сборки. Он был на батниках. Но уже тогда стало ясно, что вот эта школьного уровня поделка «выведи всё в строку а потом распарсь её» для серьёзных вещей не годится.
Давайте разберём насчёт вложенных структур, читая man ps.
Во-первых, ps -ejH выводит дерево процессов. Уровень дерева выражается в виде отступов. Удобно, да? С учётом того, что имена программ обрезаются, вывод этой команды практически полностью безполезен. Но вопрос не в том, а в том, что внезапно «простейшие» программы могут выдавать информацию в виде вложенных структур, и с ней придётся как-то работать, если она нужна, а нет ни нормального представления, ни простых инструментов. В лиспе или JS Это было бы выражено как вложенная структура данных - и с ней было бы тривиально работать.
Во-вторых, ключ, к примеру, p. «These options accept a single argument in the form of a blank-separated or comma-separated list». Что мы видим из этой цитаты? Что, во-первых, среди аргументов команды ps таки встречаются как минимум линейные списки. Поскольку в shell строка запуска ps и её аргументы - это уже список, получается, что параметр ключа -p - это список в списке. Т.е. команда ps -p «1 2» - это ничто иное, как двухуровневый список. Поскольку в говношелле нет двухуровневых списков, которые якобы не нужны, как вы мне тут вещаете, авторам ps пришлось создавать свой частный формат, кодить его, вписывать в мануал, и заставлять пользователей знать его конкретно для одного ключа одной команды, что потребует от них умения писать и читать этот формат. Если бы вместо shell был нормальный язык, было бы написано просто «These options accept a list».
Опция --sort требует уже двухуровневой структуры. Требуется задать по каким колонкам сортировать, и для каждой колонки ещё и порядок. Итого команда ps jax --sort=uid,-ppid,+pid является ничем иным, как трёхуровневым списком. Вот до какой степени нужно не уметь думать, чтобы говорить, что это не нужно, если нужность видна на первом же примере?
Исходная версия den73, :
Далее, тут анонимус и другие написали, что в баше якобы не нужны вложенные списки. Ну это бред конечно, но я стараюсь особо не разговаривать с анонимусами, поскольку неясно, с кем лично ты говоришь, поэтому не ответил. Но, честно сказать, чтение man ps привело меня в ярость.
Я всегда считал, что юникс - это говно. Точнее говоря, я не считал так короткое время, когда после убогих bat-файлов узнал, что есть могущественный баш. Но вонь ощутилась очень быстро. Мне пришлось написать для «Кворума» сервер сборки. Он был на батниках. Но уже тогда стало ясно, что вот эта школьного уровня поделка «выведи всё в строку а потом распарсь её» для серьёзных вещей не годится.
Давайте разберём насчёт вложенных структур, читая man ps.
Во-первых, ps -ejH выводит дерево процессов. Уровень дерева выражается в виде отступов. Удобно, да? С учётом того, что имена программ обрезаются, вывод этой команды практически полностью безполезен. Но вопрос не в том, а в том, что внезапно «простейшие» программы могут выдавать информацию в виде вложенных структур, и с ней придётся как-то работать, если она нужна, а нет ни нормального представления, ни простых инструментов. В лиспе или JS Это было бы выражено как вложенная структура данных - и с ней было бы тривиально работать.
Во-вторых, ключ, к примеру, p. «These options accept a single argument in the form of a blank-separated or comma-separated list». Что мы видим из этой цитаты? Что, во-первых, среди аргументов команды ps таки встречаются как минимум линейные списки. Поскольку в shell аргументы - это уже список, авторам ps пришлось создавать свой частный формат, кодить его, вписывать в мануал, и заставлять пользователей знать его конкретно для одного ключа одной команды, что потребует от них умения писать и читать этот формат. Если бы вместо shell был нормальный язык, было бы написано просто «These options accept a list».
Опция --sort требует уже двухуровневой структуры. Требуется задать по каким колонкам сортировать, и для каждой колонки ещё и порядок. Вот как нужно не уметь думать, чтобы говорить, что это не нужно, если нужность видна на первом же примере?