如何在CMD和BASH中使用的脚本中关闭ECHO
我们有一个在Windows和Linux上都可以使用的脚本,它可以作为构建存储库的简单入口点。例如,此脚本使用如何在CMD和BASH中使用的脚本中关闭ECHO,bash,cmd,Bash,Cmd,我们有一个在Windows和Linux上都可以使用的脚本,它可以作为构建存储库的简单入口点。例如,此脚本使用:#作为在CMD和Bash上都被忽略的注释 : # This script can be used from both CMD and Bash. python scripts/build.py && python scripts/test.py 它完成了这项工作,但我不喜欢在Windows上它如何在运行之前打印出命令,因为echo是打开的。如果我添加@ECHO OFF
:#
作为在CMD和Bash上都被忽略的注释
: # This script can be used from both CMD and Bash.
python scripts/build.py && python scripts/test.py
它完成了这项工作,但我不喜欢在Windows上它如何在运行之前打印出命令,因为echo是打开的。如果我添加@ECHO OFF
,我会在Bash中得到一个错误。Bash默认为关闭echo
我正在寻找一种聪明的方法来关闭CMD中的echo,而不会在Bash中造成问题 如何调用代码块中的脚本?双击某个文件?或者通过命令行执行它 我在想这样的事情:
如果调用另一个批处理脚本时,内部带有
@echo off
,然后在同一cmd会话中调用脚本,“echo off模式”应该仍然存在。在Linux下,只需省去对“echooff.bat”的调用即可。但本质上,这相当于有两个启动脚本文件,一个用于Windows,一个用于Linux 或者,如果您可以完全放弃控制台的输出,您可以重定向到
>nul
或一些>myoutputfile.txt
,这两种平台上的工作方式应该相同(我不能保证,无法测试它)。如果实时显示输出是有价值的,您可以尝试合并
tail-f myoutputfile.txt
。在Windows下,路径中可能需要一个tail
,例如来自Cygwin或tail
的Windows端口。或者使用一些文本编辑器在两个平台上显示文件。例如,我认为Notepad++、Atom和Emacs是跨平台的 如何调用代码块中的脚本?双击某个文件?或者通过命令行执行它
我在想这样的事情:如果调用另一个批处理脚本时,内部带有
@echo off
,然后在同一cmd会话中调用脚本,“echo off模式”应该仍然存在。在Linux下,只需省去对“echooff.bat”的调用即可。但本质上,这相当于有两个启动脚本文件,一个用于Windows,一个用于Linux 或者,如果您可以完全放弃控制台的输出,您可以重定向到
>nul
或一些>myoutputfile.txt
,这两种平台上的工作方式应该相同(我不能保证,无法测试它)。如果实时显示输出是有价值的,您可以尝试合并
tail-f myoutputfile.txt
。在Windows下,路径中可能需要一个tail
,例如来自Cygwin或tail
的Windows端口。或者使用一些文本编辑器在两个平台上显示文件。例如,我认为Notepad++、Atom和Emacs是跨平台的 在Linux和Windows上都使用PowerShell。(bash/batch/PowerShell polyglot脚本大纲)提供了一些有用的技巧,您可以调整这些技巧,使脚本的一部分在一个解释器中运行,而不是在另一个解释器中运行。在我看来,可以修改打开的echo…
命令,使下面的部分成批运行,但不运行bash,但不在最后退出。但我手头没有批处理运行程序可供测试…在Linux和Windows上都使用PowerShell。(bash/batch/PowerShell polyglot脚本大纲)提供了一些有用的技巧,您可以调整这些技巧,使脚本的一部分在一个解释器中运行,而不是在另一个解释器中运行。在我看来,可以修改打开的echo…
命令,使下面的部分成批运行,但不运行bash,但不在最后退出。但是我手头没有一个批处理运行程序来测试。。。