我正在使用 zsh,并尝试将 python 用作简单的计算器。我非常熟悉 python,但似乎无法让别名(或函数)正常工作。
到目前为止我已经得到:
pycalc() {
python -c "print '$@'"
}
alias p=pycalc
无论我做什么,它都会返回zsh: no matches found: 123*123
(123*123 是数学问题)。
有任何想法吗???
答案1
猛击
将以下内容添加到 .bashrc
pycalc() {
python -c "print \"%f\" % float($@)"
}
alias p=pycalc
您可以使用 echo 命令将其附加到
一行中:
echo -e 'pycalc() {\n python -c \"print \\\"%f\\\" % float($@)\"\n}\nalias p=pycalc' >> .bashrc
多行:
echo -e 'pycalc() {
python -c \"print \\\"%f\\\" % float($@)\"
}
alias p=pycalc' >> .bashrc
您现在可以使用 p
$ pycalc 12+12
24.000000
$ pycalc 12*12
144.000000
$ p 12+12
24.000000
$ p 12*12
144.000000
正如 Michael Righi 在他的回答中指出的那样,如果您有像 12*12 这样的文件,它将与 12*12 匹配,因此您可能需要将其括在双引号中。 您也可以将其括在单引号中。 他的解决方案也适用于 bash。
答案2
嘚
将其添加到.zshrc:
pycalc() {
python -c "print $@"
}
alias p=pycalc
在你的 Z shell 中,像这样使用它:
$ p 12+12
24
$ p "12*12"
144
请注意,当语句包含通配符(例如星号)时,需要使用双引号。
或者,你可以关闭该别名的通配符:
pycalc() {
python -c "print $@"
}
alias p='noglob pycalc'
这样在使用时就不需要双引号了:
$ p 12+12
24
$ p 12*12
144