问题标签 [dev-null]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
133 浏览

linux - 我的第一个 bash 脚本中的错误处理问题

好的,所以我是 bash 脚本的初学者,我知道这个问题的措辞可能有点尴尬,但我会尽可能清楚!

我编写了以下脚本来在文件夹中创建存储库的备份。脚本如下:

当不带参数调用该脚本时,此脚本成功生成 'var/svn' 中所有存储库的 .gzip 备份,并创建称为参数的特定存储库的 .gzip 备份。伟大的!

但是,如果脚本使用与存在的存储库不对应的参数运行,则程序将崩溃并显示错误消息:svnadmin: E000002: Can't open file '/var/svn/ada/format': No such file or directory. 我想要实现的是捕捉这个错误并将更用户友好的输出打印到控制台。我一直在尝试使用“陷阱”来做到这一点。

首先,我添加了以下行:

...然后我在最后一个 for 循环中将错误推送到 /dev/null :

我在我所做的地方推送到 /dev/null 文件,因为这是程序出错的地方。但是,该脚本似乎不再起作用。我在这里做错了什么?与2>/dev/null在一行中间有问题吗?如果是这样,我该如何重构这段代码,使其不需要管道中间的管道?

非常感谢您的帮助,我希望我的问题相当清楚!为了确认,最终的非工作代码如下:

0 投票
1 回答
381 浏览

bash - 在 bash 中重定向内存泄漏错误消息

我在一个小茶计时器脚本中使用espeakwith :mbrola

不幸的是,mbrola 中似乎存在内存泄漏;但它并没有阻止它工作。

如您所见,尽管我想沉入stdout& stderrin ,但我在终端上输出了这条丑陋的错误消息/dev/null

如何正确丢弃内存泄漏信息?

0 投票
1 回答
347 浏览

bash - > /dev/null 如何吃掉输出流?

/dev/null在 bash 编程中使用了很多东西来将不必要的输出发送到黑洞中。

例如,这个命令:

不会echo有什么。我读过这/dev/null是一个空文件,用于通过重定向处理不需要的输出。但这种处置究竟是如何进行的呢?我无法想象/dev/null将内容写入文件然后立即删除该文件。那么当你重定向到这个文件时实际发生了什么?

0 投票
2 回答
534 浏览

bash - 从 shell 脚本输出中省略错误

如果 ICMP 回显失败,我想省略此 IF 语句中的错误。

示例代码:

如果 ping 成功或者您在脚本之外运行命令,它会完美运行,但如果没有响应,则会给出以下输出。

我已经看到了引用 2>/dev/null 的答案,但这会在输出中显示整个 ping 查询,无论成功与否!2>/dev/null 的示例如下。

这是一个有点n00b的问题,但我是网络小伙,而不是开发人员:)

提前致谢!!

0 投票
4 回答
5231 浏览

c - /dev/null 总是可以打开的吗?

我想fprintf通过将目标 FILE 重定向到/dev/null. 但我可以肯定的是,fopen("/dev/null", "w");永远不会回来NULL。换句话说,是否每次都可以打开这个“文件”?

如果是这样,我可以使用这个不错的三元运算符:

0 投票
0 回答
66 浏览

python - 如何获取子进程默认/预设值/行为

在这篇文章中,我解释了如何检查在 Windows 会话中打开了多少 QGIS 项目。

这是缩短的代码:

该代码使用tasklist从 Windows 获取有关所有打开窗口的信息并过滤 QGIS 窗口标题。

我在 QGIS 插件的函数中使用此代码。

插件中还有另一个函数,我在其中调用了多个函数以subprocess使用另一个程序 ( SAGA GIS) 进行一些计算:

问题是这些subprocess调用不再起作用。我在 QGIS python 控制台中没有收到特定错误。

当我发表评论self.checkQgisProcesses()时,它再次起作用。

我认为问题在于DEVNULL, stdin,stderr参数。

如何将它们设置回默认值?

更新

我错误地认为问题可能出在DEVNULL声明上。显然问题在于使用subprocess.STARTUPINFO().

这是一个可重现的示例:

这是来自的代码hello_world.bat

该函数checkFirefoxProcesses()查找打开的firefox进程。要运行该示例,您必须打开一个firefox会话。该函数在 BAT 文件的帮助下helloWorldToText()创建一个文本文件。ECHO

该示例不会创建声明为startupinfo = info. 当我在没有它的情况下运行subprocessof 函数时。helloWorldToText()startupinfo = info

案例:checkFirefoxProcesses()没有运行startupinfo = info和运行helloWorldToText()运行startupinfo = info

0 投票
1 回答
863 浏览

bash - Bash:使进入后台的进程静音

如果我使用 bash 运行应用程序并将其通过

  • STRG+z
  • bg命令

如果现在该进程正在打印到stdoutshell,则打印此输出。这个输出对我来说并不有趣,我不喜欢我的外壳被它污染。

有没有办法将此过程的输出重定向到/dev/null

我可以通过直接在后台启动应用程序来实现同样的效果(./application &> /dev/null)&,但是我的应用程序已经在运行,我不想退出它并重新启动它。

0 投票
1 回答
4651 浏览

osx-elcapitan - /dev/null 没有这样的文件或目录

但是,当我对它进行任何操作时,我会运行El Capitan OS X并尝试使用/dev/null它,例如ls

我也试过:

然而,输出如下:

我怎样才能解决这个问题?

0 投票
1 回答
43 浏览

php - PHP Cli,如何使用重定向

我需要从 cli 启动 php 并将 stdout 重定向到 /dev/null,但我正在使用 args 并且重定向不起作用。

如何解决?

0 投票
1 回答
124 浏览

shell - 测试中的 Shell 脚本输出管道不起作用

我正在尝试以参数方式控制命令的错误输出,但管道命令被作为另一个参数处理。下面的测试脚本;

错误输出仅应在选择 --verbose 选项时打印,但无论如何都会打印。测试脚本显示2>/dev/null管道作为参数处理。

为什么/如何将管道作为参数处理?