我的 .bash_aliases 文件中填充了单字母别名(例如 o 为octave-cli
和 r 为 )sudo reboot
。
有一段时间我一直想实现 BASH 的内置计算器来执行快速计算,主要是整数乘法和指数运算。有时我会echo $((expression))
在终端中运行,但是如果能对此进行简写就更好了,这样我就可以简单地写
c expression
在终端中。理想的做法是声明类似
alias c="echo $(($@))"
进入 .bash_aliases 文件,但是这不起作用(它打印 0 以及未解的表达式)。我必须以什么方式修改上面的命令才能将“表达式”c expression
传递给echo $(($@))
。我曾想过在 .bash_aliases 文件中包含一个函数,但不知道如何正确引导参数。
答案1
别名不能接受位置参数。为此,您需要一个函数:
$ c(){ echo "$(($@))"; }
$ c 2+2
4
这不是什么新鲜事,也没有回避有关别名的问题。同样已经讨论过了这里,这里,这里以及其他十余篇帖子。
虽然在某些情况下可以使用以下方法“模拟”别名的行为xargs
,但这种方法容易出错、难以维护,并且效果不稳定。一般来说,如果您出于某种原因不想使用函数,但希望使用命令行实用程序来执行计算,请使用 中给出的建议有适用于 Ubuntu 的命令行计算器吗?。诸如这些建议的专用工具可以做的不仅仅是 bash 算术扩展,这是另一个好处。