Очистить консоль PowerShell в bash в Windows - PullRequest
1 голос
/ 05 марта 2019

Я загружаю bash.exe из SourceForge и добавляю его в мой путь в Powershell, но не могу очистить консоль. clear.exe отсутствует в загруженном zip-файле, поэтому имеет смысл, что эта команда не работает. Однако использование Ctrl+L также не очищает консоль PowerShell.

Как заставить консоль powershell очищаться, когда я использую в ней bash?

Примечание: я попытался добавить псевдоним clear к своему .bashrc как alias clear=echo <many enters>, но он работает не совсем так, как я ожидал (то есть только повторяет 4 или 5 новых строк). Кроме того, echo "\n\n" просто печатает литерал \n\n.

1 Ответ

2 голосов
/ 06 марта 2019

В отсутствие утилиты clear или tput и учитывая, что обычные escape-последовательности ANSI не работают с (встроенным) printf, вы должны вызвать либо cmd.exe, либо PowerShell для очистки экрана:

bash$ powershell -noprofile -c cls

Использование cmd быстрее, но проблема в том, что win-bash вызывает внешние программы путем двойных кавычек каждого аргумента за кулисами, что приводит к неправильной работе такой команды, как cmd /c cls; следующий обходной путь в основном работает, но печатает строку приглашения cmd.exe один раз после очистки экрана.

# !! Clears the screen, but prints the cmd.exe prompt string once.
bash$ echo cls | cmd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...