首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.aliases重定向tcsh中的STDERR

从.aliases重定向tcsh中的STDERR
EN

Stack Overflow用户
提问于 2008-09-25 21:22:19
回答 2查看 7.6K关注 0票数 4

在tcsh中,我试图从.aliases文件中的命令重定向STDERR。

我发现可以像这样从命令行重定向STDERR。。。

代码语言:javascript
复制
$ (xemacs > /dev/tty) >& /dev/null

。。。但是,当我把这个放在我的.aliases文件中时,我会得到一个别名循环。。。

代码语言:javascript
复制
$ cat .aliases
alias xemacs '(xemacs > /dev/tty ) >& /dev/null'
$ xemacs &
Alias loop.
$

。。。因此,我在.aliases中的命令前面放了一个反斜杠,这允许命令运行。。。

代码语言:javascript
复制
$ cat .aliases
alias xemacs '(\xemacs > /dev/tty ) >& /dev/null'
$ xemacs &
[1] 17295
$ 

。。。但现在我不能给命令任何论据:

代码语言:javascript
复制
$ xemacs foo.txt &
Badly placed ()'s.
[1]    Done                          ( \xemacs > /dev/tty ) >& /dev/null
$ 

有人能提供任何解决方案吗?提前谢谢你!

更新:我仍然很好奇是否可以从.aliases重定向tcsh中的STDERR,但是正如这里所建议的,我最终得到了一个shell脚本:

代码语言:javascript
复制
#!/bin/sh
# wrapper script to suppress messages sent to STDERR on launch
# from the command line.
/usr/bin/xemacs "$@" 2>/dev/null
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-09-25 21:34:59

我怀疑在这种情况下,不使用别名是最好的选择--尝试使用shell脚本代替:

代码语言:javascript
复制
#!/bin/tcsh

(xemacs $* > /dev/tty ) >& /dev/null
票数 5
EN

Stack Overflow用户

发布于 2008-11-21 02:26:52

试一试

代码语言:javascript
复制
alias emacs '(\emacs \!* > /dev/tty) >& /dev/null'

“错误放置()”消息来自将输入参数错置到emacs。

代码语言:javascript
复制
(/usr/bin/emacs > /dev/tty) >& /dev/null abc

在包含"\!*“之后,"emacs abc”变成

代码语言:javascript
复制
(/usr/bin/emacs abc > /dev/tty) >& /dev/null
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/136233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档