如何阻止 zsh 在命令行中扩展 *(星号)?

yeg*_*gle 5 zsh

我最近切换到zsh. 当我使用 时bash,我曾经将echo 2*3 |bc其用作功能强大且方便的计算器,但在zsh命令的第一部分中会出现错误消息:

$ echo 2*3
zsh: no matches found: 2*3
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过在字符串中添加引号来避免扩展,2*3但是是否可以从bash(不在命令参数中扩展星号)中引入此功能?

更新:

bc <<< 2*3在我发现不会触发扩展的意义上,很奇怪:-(

t9m*_*ike 4

你可以做:

noglob echo 2*3 | bc
Run Code Online (Sandbox Code Playgroud)

然后创建一个别名:

calc()
{
   echo $* | bc
}
alias calc='noglob calc'
Run Code Online (Sandbox Code Playgroud)

  • FWIW,您可以使用 `$(( ))` 在 Zsh 中进行算术评估,您可以使用 `calc() { echo $(( $* )) }` 来避免 `bc` (2认同)