Как отключить ECHO в скрипте, который используется в CMD и BASH - PullRequest
1 голос
/ 31 марта 2020

У нас есть скрипт, который используется как на Windows, так и на Linux в качестве простой точки входа в создание нашего репозитория. Например, этот сценарий использует : # как способ сделать комментарий, который игнорируется как в CMD, так и в Bash.

: # This script can be used from both CMD and Bash.

python scripts/build.py && python scripts/test.py

Он выполняет свою работу, но мне не нравится, как это сделать Windows распечатывает команду перед запуском, потому что эхо включено. Если я добавлю @ECHO OFF, я получу ошибку в Bash. Bash по умолчанию отключено эхо.

Я ищу умный способ отключить эхо в CMD, не вызывая проблемы в Bash.

1 Ответ

0 голосов
/ 25 апреля 2020

Как вызывается этот скрипт в вашем блоке кода? Двойным щелчком файла? Или, выполнив его из командной строки?

Я думаю о чем-то вроде этого:
Если вы вызываете другой пакетный скрипт с @echo off внутри, а затем вызываете свой скрипт в том же сеансе cmd, «Режим эхосигнала» должен оставаться на месте. В Linux просто пропустите вызов echooff.bat.
Но, по сути, это эквивалентно наличию двух файлов стартового скрипта, один для Windows, один для Linux.

Или, если вы можете полностью передать вывод sh на консоль, вы можете просто перенаправить на > nul или на > myoutputfile.txt, который должен работать на обеих платформах одинаково (я не могу дать гарантию, не может проверить это).
Вы можете попытаться включить tail -f myoutputfile.txt, если показание результата в реальном времени является ценным. В Windows это может потребовать tail присутствующего в PATH, например, от Cygwin или Windows порта tail. Или используйте текстовый редактор, чтобы показать файл на обеих платформах. Я думаю, что Notepad ++, Atom и Emacs являются кроссплатформенными, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...