[英]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
。
另一个问题中所述的解决方案完全不符合我的用例。
$HOME/.bash_aliases
bash
替换tee >(bash)
,但这也没有用。 (我使用 tee 而不是直接通过管道传输到 bash 的原因是为了在执行之前打印命令)。zsh
而不是bash
进行管道传输会给出相同的错误zsh: command not found: cls
我不想安装 fzf 来完全复制您的操作。
然而,查看代码段|tee >(bash) ,我看到那里是错误的......是你应该用 pipe ( | )替换“ > ”,因为“bash”是一个过程,而不是一个文件规范。
此外,在 bash 调用周围不需要圆括号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.