4

Я использую Zsh, и я пытаюсь использовать Python в качестве простого калькулятора. Я очень хорошо знаком с Python, но не могу заставить псевдоним (или функцию) работать должным образом.

Пока что у меня есть:

pycalc() {
  python -c "print '$@'"
}
alias p=pycalc

Независимо от того, что я делаю, он возвращает zsh: no matches found: 123*123 (123 * 123 - математическая задача).

Есть идеи???

2 ответа2

4

ЗШ

Добавьте это к .zshrc:

pycalc() {
  python -c "print $@"
}
alias p=pycalc

В вашей оболочке Z используйте это так:

$ p 12+12
24
$ p "12*12"
144

Заметьте, что вам нужны двойные кавычки, когда в операторе есть такой символ как звездочка.

Или вы можете отключить сглаживание для этого псевдонима:

pycalc() {
  python -c "print $@"
}
alias p='noglob pycalc'

Это устраняет необходимость в двойных кавычках при использовании:

$ p 12+12
24
$ p 12*12
144
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

Теперь вы можете использовать р

$ pycalc 12+12
24.000000
$ pycalc 12*12
144.000000
$ p 12+12
24.000000
$ p 12*12
144.000000

Как отметил Майкл Риги в своем ответе, если у вас есть файл размером 12 * 12, он будет соответствовать 12 * 12, поэтому вы можете заключить его в двойные кавычки. Вы также можете заключить его в одинарные кавычки. Его решение работает и для Bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .