我希望能够在 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]
将扩展为&&
。