在 Bash 中,如何使“and”成为 && 的工作别名?

在 Bash 中,如何使“and”成为 && 的工作别名?

我希望能够在 Bash 中使用and而不是&&

我尝试过alias and=&&,但行为不一样。

steven% echo 'hi' && echo 'bi'  (git)-[yako.botrank-rate-limit-status]-
hi
bi
steven% echo 'hi' and echo 'bi'
hi and echo bi

答案1

(这是我在这个 stackexchange 上的第一个回答,所以请耐心等待)

另一个答案似乎是正确的,这是不可能的,但是作为一种解决方法,我考虑了以下代码,因为我也想做这样的事情:

alias and='read and1 && read and2 && eval $and1 && eval $and2'

这篇文章对使用“eval”命令提出了警告,并提出了一些建议,说明如何使用它们可以达到同样或更好的效果:https://unix.stackexchange.com/questions/444946/how-can-we-run-a-command-stored-in-a-variable

这将允许您以波兰符号的形式依次执行两个命令。因此,您可以键入“and”+enter,输入一个命令然后输入,然后输入下一个命令并输入,然后它将运行每个命令。(and 命令命令)

您还可以通过键入 and+enter 将它们链接在一起,然后键入第一个命令然后输入,然后再次键入 and+enter (使“and”成为要执行的第二个命令)。(and command(and command command))

答案2

在 bash 中这是不可能的。

Bash 没有提供覆盖运算符的语法。换句话说,所有运算符和保留字都是硬编码的。在Bash 参考手册

另请注意,Bash 参考手册:别名声明称,“别名允许用字符串代替单词,当该字符串用作第一个字一个简单的命令。”

答案3

你可以使用类似自动键创建缩写。

例如,输入and[TAB]将扩展为&&

相关内容