Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?

Мои исследования показывают, что оболочка Z тесно связана с двумя тайными обществами. Эти связи обнаруживаются при сопоставлении вывода GNU Make при использовании bash vs. zsh . Я хотел бы знать, как настроить мою оболочку, чтобы сорвать любые хитрые планы, которые были заложены против меня.

  1. эрудиты

    Целью этого партнерства, похоже, является скрытие секретов на виду. Рассмотрим результат следующего простого Makefile :

     test: @echo "# header" @echo "line with a hash # in the middle" 

    Если я запустил это в своей оболочке zsh , первая строка скрыта от меня. Это не проблема с экранированием хэша, потому что (а) только первая строка имеет проблему, (б) перенаправление этого файла в файл делает его показательным, и в этот момент просмотр файла на тот же терминал показывает , и (c) если я копирую с терминала текст на самом деле там, он просто отображается как черный.

    вывод makefile в zsh vs bash

    Как я могу остановить все, что zsh делает с выходом, который скрывает секретные сообщения, чтобы я мог принимать обоснованные решения на основе вывода?

  2. Масонство

    Цель этого партнерства состоит в том, чтобы выпустить как можно меньше информации о том, что происходит за кулисами. Рассмотрим выход этого простого Makefile:

     test: for i in $$(seq 1 10); do echo -n "[$$i]"; sleep 1; done 

    Если я запустил это в моей оболочке zsh , вывод буферизуется где-то до тех пор, пока не будет достигнута новая линия или цель не будет завершена. Тогда и только тогда все возвращается к терминалу. Это делает длительные рабочие задания, которые на самом деле показывают что-то во время работы, но не включают частые разрывы строк на выходе, которые очень сложно выполнить. В отличие от этого вывод, который я получаю от bash , намного более информативен.

    asciicast

    Как я могу остановить все, что zsh делает, что цензоры выводят до тех пор, пока не будет вынужден раскрыть его, чтобы я мог видеть, что происходит, когда это происходит?

Если это имеет значение, я использую GNU Make 4.2.1, Z shell 5.2 и запускаю его внутри Tmux 2.4 в окне Termite v12. Мои dotfiles доступны для zsh , tmux и Termite .

Также обратите внимание, что ни одна из этих проблем, похоже, не имеет ничего общего с тем, что shell запускает внутренне, поскольку добавление SHELL = bash в Makefile ничего не меняет.

One Solution collect form web for “Как я могу остановить Z-оболочку от сговора, чтобы вмешаться в вывод GNU Make?”

Не используя надстройки, целью которых является именно это.

Это не Z-оболочка, которая делает это; ни tmux, ни термита.

Вы установили надстройку из Prezto (или что-то подобное), документальная цель которой заключается в «вмешательстве в вывод GNU Make». Верх надстройки гласит:

  #
 # Основные моменты делают вывод.
 #
 # Авторы:
 # Сорин Ионеску <sorin.ionescu@gmail.com>
 # 

Как вы можете видеть, когда вы бежали

  сделать тест 

вы не запускали настоящую программу make , а вместо этого запускали надставку named make которую вы установили. Он, в свою очередь, выполнял команду под названием colormake .

И что делает colormake ? Он запускается с стандартным выходом и стандартной ошибкой, не являющейся терминальным устройством, и передает их в программу Perl, которая считывает и обрабатывает стандартный ввод по одной целой строке за раз. Фактически вы можете воспроизвести все эффекты, которые вы видите, в любой совместимой с POSIX оболочке , делая то же самое:

  / usr / bin / make test 2> & 1 |  colormake.pl 

Это не связано с оболочкой Z и все, что связано с тем, что вы установили плагин, который заменил команду make .

Чтобы наблюдать за строкой в ​​режиме времени самостоятельно, без цвета и обнаружения комментариев и т. Д., colormake.pl делает, в любой оболочке, совместимой с POSIX :

  / usr / bin / make test 2> & 1 |  perl -e 'while (<>) {print $ _;  }» 

Поэтому удалите или отключите добавленное дополнение.

Prezto также заменяет команду diff .

дальнейшее чтение

  • Бьярни Рунар Эйнарссон. Colormake .
  • Сорин Ионеску (2012). make . Prezto.
  • Сорин Ионеску (2012). diff . Prezto.
  • Перенаправить вывод на полпути через скрипт и восстановить позже
  • Как прекратить поиск «родительского» скрипта?
  • скопировать и вставить в zsh
  • Почему вырезать провал с bash, а не zsh?
  • Определение псевдонима и его немедленное использование
  • Почему экспорт vim как EDITOR в zsh отключает быстрые клавиши?
  • zsh - проверить аргументы команды перед ее выполнением
  • Сценарий с ошибкой «команда не найдена: ^ M»
  • Как извлечь определенные элементы из имени файла?
  • поиск файлов с использованием группового разрешения
  • Почему `==` ведет себя по-другому внутри `` в zsh и bash?
  • Interesting Posts

    Какой самый безопасный, самый переносимый способ вызвать двоичный код echo?

    Как исправить `. имя файла "надежно?

    Я использую `history -c` очистить историю, почему первый идентификатор команды не начинается с` 1`?

    Как заставить оболочку xterm использовать utf-8?

    Как изменить разрешения от пользователя root для всех пользователей?

    Замените номера в файле1 соответствующей строкой в ​​файле2

    Gnome3 – добавление клавиатуры «Пользовательские ярлыки» с использованием dconf без необходимости выхода из системы

    Каковы режимы readline, раскладки клавиш и их привязки по умолчанию?

    рассчитать числа на конец и слить в одну строку

    Как воссоздать загрузочный раздел EFI?

    После обновления yum рекомендуется перезапустить сервер?

    Что хорошего места для изучения UNIX, с которым я могу подключиться? ..

    Как успешно выполняется команда passwd из учетной записи, отличной от root

    grub2 Windows больше не загружается

    MasterPDFEditor использует черную тему для страниц PDF

    Linux и Unix - лучшая ОС в мире.