Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CMD和BASH中使用的脚本中关闭ECHO_Bash_Cmd - Fatal编程技术网

如何在CMD和BASH中使用的脚本中关闭ECHO

如何在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

我们有一个在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
,我会在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,但不在最后退出。但是我手头没有一个批处理运行程序来测试。。。