繁体   English   中英

tee >(bash) 使用预定义的别名

[英]tee >(bash) to use predefined aliases

我的要求和这个问题很相似。 我写了一个命令cat $HOME/.zsh_history | sort | uniq | fzf | tr ";" "\n" | grep "^[^:]" |tee >(bash) cat $HOME/.zsh_history | sort | uniq | fzf | tr ";" "\n" | grep "^[^:]" |tee >(bash) cat $HOME/.zsh_history | sort | uniq | fzf | tr ";" "\n" | grep "^[^:]" |tee >(bash)让我浏览我的历史并执行选择。 但这里的问题是它不能很好地与其他别名一起使用。 例如,我有alias cls=clear 使用我的命令执行cls将不起作用。 它给出了一个错误bash: line 1: cls: command not found

另一个问题中所述的解决方案完全不符合我的用例。

  1. 我所有的别名都保存在$HOME/.bash_aliases
  2. 我尝试用bash替换tee >(bash) ,但这也没有用。 (我使用 tee 而不是直接通过管道传输到 bash 的原因是为了在执行之前打印命令)。
  3. 通过zsh而不是bash进行管道传输会给出相同的错误zsh: command not found: cls

我不想安装 fzf 来完全复制您的操作。

然而,查看代码段|tee >(bash) ,我看到那里是错误的......是你应该用 pipe ( | )替换“ > ”,因为“bash”是一个过程,而不是一个文件规范。

此外,在 bash 调用周围不需要圆括号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM