它们在中无效csh
。在bash
和中使用它们的一般规则是zsh
什么?
使用bash,无需命令即可进行重定向,然后执行重定向,然后将其关闭:
< foo.txt
单独作为命令行将打开文件foo.txt
以供读取,然后将其关闭。> foo.txt
将打开文件foo.txt
进行写入,如有必要将其创建并截断,然后将其关闭。清空文件的快速方法。使用zsh,无需执行命令NULLCMD
或即可进行重定向READNULLCMD
。
READNULLCMD
(或者NULLCMD
,如果未设置`READNULLCMD)用于标准输入的重定向:
% echo foo > foo.txt
% READNULLCMD=nl
% < foo.txt
1 foo
NULLCMD
对于标准输出的重定向:
% NULLCMD='ls'
% > foo.txt # runs $NULLCMD
% < foo.txt # runs $READNULLCMD, showing the output of `NULLCMD` run previously
1 Applications
2 Desktop
3 Documents
4 Downloads
有关详细信息,请参见Zsh 7.3,无命令重定向。
当一个简单命令由一个或多个重定向运算符和零个或多个参数分配组成,但没有命令名称时,zsh可以以几种方式运行。
如果
NULLCMD
未设置参数或设置了选项CSH_NULLCMD
,则会导致错误。这是csh行为,CSH_NULLCMD
在模拟csh时默认设置。如果
SH_NULLCMD
设置了该选项,则将内置:
命令作为具有给定重定向的命令插入。这是模拟sh或ksh时的默认设置。否则,如果
NULLCMD
设置了参数,则其值将用作具有给定重定向的命令。如果同时设置NULLCMD
和READNULLCMD
,则当重定向是输入时,将使用后者的值而不是前者的值。的默认NULLCMD
值为“cat
”,默认为READNULLCMD
“more
”。因此< file
在标准输出上显示文件的内容,如果是终端则显示分页。
NULLCMD
并READNULLCMD
可能涉及Shell函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句