zsh - zsh:标准错误没有被重定向
问题描述
我为测试创建了一个空的导演
$ mkdir test
$ cd test
$ grep da *
zsh: no matches found: *
现在我正在尝试将错误重定向zsh: no matches found: *
到文件。(我的目的只是为了测试和理解,请不要问我为什么要这样做)
$ grep da * 2> grep-errors.txt
zsh: no matches found: *
现在错误仍然可见
$ ls -al
total 60
drwxr-xr-x 2 test users 4096 Mar 2 20:18 .
drwxr-xr-x 117 test users 53248 Mar 2 20:25 ..
该文件grep-errors.txt
未创建
所以这里发生的事情有人可以解释。为什么错误没有被重定向到文件。
解决方案
重定向仅适用于grep
,但它zsh
本身会在*
未扩展到任何匹配文件时、在运行之前 grep
或什至在zsh
尝试处理重定向之前产生该错误。
一种解决方法是禁用该NOMATCH
选项,以便*
按字面意思传递给grep
. 然后将运行并产生将写入文件grep
的错误 ( )。grep: *: No such file or directory
% setopt NO_NOMATCH
% grep da * 2> grep-errors.txt
% cat grep-errors.txt
grep: *: No such file or directory
推荐阅读
- pdf - 如何提取 PDF 提取图像的旋转/变换信息(即查看者如何知道旋转 180 度)
- android - Webview 不显示带颜色的文本
- javascript - 通过常量创建纯组件 - javascript 还是 React?
- ionic-framework - ionic 3:Googleplus 在 app.module.ts 中未被识别为提供者
- node.js - 将 ORM 中模型的输出更改为我自己在 ORM 中的数据格式 - sequilize 节点
- go - Go 中允许省略可选的第二个返回值的案例列表
- ngx-admin - 如何在不使用任何 neb auth 模块的情况下向 Nebular ngx-admin 添加登录页面?
- three.js - Threejs - 加载模型和唯一 ID
- sql - 在 SQL 中将 24 小时时间转换为 12 小时时间
- ionic-framework - 在 Android 上通过本地存储 (Ionic2) 查找存储数据的位置