Здравствуйте, Somescout, Вы писали:
S>Правильно я понимаю, что этот код сначала читает весь вывод, затем обрабатывает его, потом отправляет внешней программе? Потому что это не то, что делает код на powershell — там именно конвейер.
На конвейер подобного рода есть библиотеки, но ты учти, что sort по любому должен всосать весь вывод. Или пример плохой, надо было вместо sort какой-нибудь cut вызвать.
Я ещё могу в отдельный тред вывести качалку байтов между внешними программами, это ещё две строчки на один пайп
N>>Смысл в этом есть, но если оба варианта нормально реализованы, между ними есть адекватный интерфейс и они нормально разделяются в синтаксисе. Со вторым и третьим проблемы, наверно, нет (ну кроме регистра, концов строк и прочего виндового маразма), а вот с первым будут очень серьёзные проблемы (и по отзывам людей, которые это трогали лет 5 назад, было неюзабельно в плане объектного доступа в Unix).
S>"Рабинович напел"?
В данном случае я этому Рабиновичу доверяю. И ещё проверил по документации от MS. Или там безнадёжно кривая и неполная документация, или средств, которые были бы полезны для Unix (а не какие-нибудь WMI), отсутствуют от слова "совсем".
И зачем он тогда нужен — только как специфически подвинутый bash? Я лучше таки тогда собственно bash применю.
N>>"$@" — все номерные аргументы без переразложения.
S>В смысле строка аргументов в raw-виде? Только если через хаки ($MyInvocation.Line — команда целиком).
Да. Ну если документировано, то не совсем хаки? Хотя при отношении MS к командной строке (в родном интерфейсе это не массив, а одна строка) не удивляюсь.
N>>Не катит, на убунте по умолчанию не присутствует в репах.
S>И что? А у меня питон не установлен в винде. Или ставьте powershell, или гуглите — гугль первым результатом выдаёт ссылку на онлайновую документацию.
Ну вот я и погуглил. Есть рассказы, как его ставить под десяток линуксовых дистрибутивов, но ни одного, где бы пояснялось, нафига он там вообще нужен — как сделать какие-нибудь стандартные фокусы типа "вывести самый наевший процессора тред из текущих в системе", "какой юзер захватил порт N", "сколько у нас активных контейнеров со своими именами и cgroups" и т.п.
S>>>Почему? Именно регистрозависимость вносит дополнительную бесполезную сущность.
N>>Не доказана её бесполезность.
S>Нет, не доказана её полезность.
Для начала — отсутствие кодового усложнения (контроль на хранении в FS, на чтении и интерпретации имён файлов и т.д.) там, где и без него много проблем. Нет хаков под несуществующие проблемы => нет проблем, созданных этими хаками.
S>Можно примеры случаев, когда проблемы от CI в файловой системе не были бы вызваны плохой архитектурой приложения? Потому что файловая система не предназначена для хранения произвольных данных в именах файлов, а вы, насколько я понимаю, защищаете именно возможность не сохранить именованые данные, а сохранить данные в имени.
Это именно что вопрос именования (не каламбур). Нет необоснованных ограничений => нет неожиданных конфликтов.