我经常想对命令的“位”进行某种别名/替换。
例如:我希望'bkg'转换为“ 2> / dev / null> / dev / null&”,这样我就可以在后台运行应用程序,而不会在控制台中输出垃圾邮件,例如:
nautilus . bgk
>>>
nautilus . 2> /dev/null > /dev/null &
到目前为止,我最接近的工作是:
1)创建别名:
alias bkg="&> /dev/null > /dev/null &"
2)在键入命令之前,先键入alias,然后先通过ctrl + alt + e展开它,然后返回并键入command。
bkg #press ctrl+alt+e
&> /dev/null > /dev/null & #has expanded. Now go back and type cmd:
nautilus &> /dev/null > /dev/null &
但是,这有点麻烦。
[编辑] ZSH似乎具有全局别名。这接近我的需求。但是从阅读来看,zsh似乎与bash脚本不完全兼容。似乎仅出于全局范围而切换到zsh,但破坏bash脚本可能不值得。因此,寻找bash本机解决方案。
[edit]
根据@egmont的建议,接近我需要的是定义一个别名:
alias quiet="&> /dev/null "
然后,我可以像这样使用它:
quiet nautilus . &
但是,有两个问题:必须在末尾加上“&”,并且在键入“ quiet”后制表符预测不起作用。
ZSH将为您提供全局别名(以及&>/dev/null
作为编写重定向的一种较短方法)所需的所有绳索。
% alias -g bgk='&>/dev/null &'
% sleep 20 bgk
[1] 44612
%
但是,我强烈建议您不要使用全局别名,因为它们有点麻烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句