Таблица в ответе на переполнение стека (который получил его из Bash Hackers Wiki ) объясняет, как расширяются различные переменные Bash:
Вы делаете python -i -c "from $ @"
, который превращается в python -i -c "from sys" "import" "stdout"
и -c
принимает только один аргумент, поэтому он запускает команду из sys
. Вы хотите использовать $ *
, который будет заменен на python -i -c "from sys import stdout"
(при условии, что $ IFS
не установлен или начинается с пространство).
Так же, как конкретный пример того, как флаг -j
влияет на операцию сборки, и причина быть осторожным с ним:
Я забыл, что у меня был MAKEFLAGS = -j5
и попытался построить LLVM; как только он достиг 97%
процентов, он запускал 5 ld
процессов одновременно, каждый из которых потреблял 1,5 ГБ
+ ОЗУ.Первый отказал в течение 20 минут, а остальные потребляли все больше и больше памяти, пока мой компьютер не стал непригодным для использования, и я, наконец, решил Ctrl + C
его и повторить попытку с меньшим -j
]. С -j3
мой компьютер все еще борется с тремя процессами ld
, но, по крайней мере, я все еще могу набрать это с небольшими сбоями.