Как зафиксировать удар, ища программу в неправильном dir (Issues, настраивающий NPM на Ubuntu 11.10)

Я думаю, что Вам нужен, по крайней мере, вызов оболочки в xargs:

ls A/*.dat | xargs -I file sh -c "./a.out < file > file.ans"

Править: Нужно отметить, что этот подход не работает, когда имена файлов содержат пробел. Не может работать. Даже если бы Вы использовали, находят-0 и xargs-0 заставлять xargs понять пробелы правильно, вызов оболочки-c каркал бы на них. Однако OP explicitely попросивший xargs решения, и это - лучшее xargs решение, которое я предложил. Если пробел в именах файлов мог бы быть проблемой, использование находят - должностное лицо или цикл оболочки.

5
19.11.2011, 02:55
2 ответа

Возможности состоят в том, что у Вас действительно был a /usr/local/bin/npm и Ваша оболочка помнит это в своем кэше. Можно очистить кэш с hash -d npm. Кэш не совместно используется в экземплярах оболочки, таким образом, проблема не продлится.

Причина вывод which несовместимо тому, что делает Ваша оболочка это which внешняя программа, таким образом, она не совместно использует кэш удара. Использовать type вместо этого, это - оболочка, встроенная, таким образом, это более надежно.

7
27.01.2020, 20:36
  • 1
    "не совместно использует кэш удара" –  daniel kullmann 19.11.2011, 04:36

Можно считать себя довольно удачливыми, потому что Вы только что изучили простой способ, что Вы не должны помещать своих дополнительных двоичных директоров перед PATH переменная. Нормальное PATH переменная в Вашем случае должна посмотреть что-то как

PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin:/home/steven/local/bin

Но проблема, которая на самом деле вызвала Вашу ошибку, не действительно с PATH, скорее, с какой npm команда была, вероятно, искажена к. Для изучения этого ввести

type npm

Другая опция могла быть этим /usr/local/bin/npm просто поврежденная символьная ссылка на /home/steven/local/bin/npm (но Вы узнали бы это с вышеупомянутой командой также).

2
27.01.2020, 20:36

Теги

Похожие вопросы