1

По какой-то причине calc всегда становится интерактивным (как если бы я указал -i или вообще не указал выражение). Я должен нажать CTRL-C несколько раз, чтобы выйти.

~ calc 5+4
    9
^C
[Abort level 1]
^C
[Abort level 2]
^C
[Abort level 3]
^C
ABORT
~ 

Он отлично работал на моем старом Mac. Я установил его с помощью brew (на обеих машинах), и переустановка calc не помогла. Что может быть причиной?

Изменить: я попытался запустить чистую оболочку bash, я проверил псевдонимы, и я пытался использовать -q -e чтобы игнорировать окружение и файлы конфигурации. Ничто из этого не помогло.

~ type -a calc
calc is /usr/local/bin/calc

~ calc -q -e 5+4 не меняет поведение.

~ env -i bash --noprofile --norc
bash-3.2$ calc 5+4`

тоже не помогает.

~ ls -l /usr/local/bin/calc
lrwxr-xr-x  1 lafp  admin  34 Feb 28 14:43 /usr/local/bin/calc -> ../Cellar/calc/2.12.7.1_1/bin/calc`

Я нашел то, что действительно помогает. Переключение на другого пользователя! (в данном случае root).

~ sudo su
root@... calc 5+4
    9
root@...

2 ответа2

1

Опция 1:

На zsh calc - это функция. Вы можете попробовать это вместо /usr/local/bin/calc

$ which calc
calc () {
    awk "BEGIN{ print $* }"
}

Вариант 2: Попробуйте запустить команду с абсолютным путем. /usr/local/bin/calc 5+4 или \calc 5+4 . Если \calc сработал для вас, то, скорее всего, вы установили псевдоним для calc .

0

Я думаю, что я понял это: проблема была RVM.

В моем .bash_profile у меня был [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

И он остался загруженным даже при запуске нового bash или очистке переменных окружения, потому что env -i не очищает функции, только переменные.

Излишне говорить, что в будущем я постараюсь избежать rvm ... он регистрирует сотни функций. Страшно.

Спасибо за помощь!

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