#bash #ssh #path
#bash #ssh #путь
Вопрос:
Я сделал это:
ssh me@remote which hg
ничего не вернуло, по-видимому, потому, что не смогло найти hg.
Итак, я сделал это:
ssh me@remote echo $PATH
который вернул этот длинный беспорядок: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/ texbin:/opt/bin
Затем я сделал это:
ssh me@remote
<after getting logged in to the remote computer>
which hg
/opt/bin/hg
Почему сервер сможет найти двоичный файл hg в одном экземпляре, но не в обоих? Что вам нужно сделать, чтобы исправить это, чтобы
ssh me@remote which hg
работает?
Комментарии:
1. Попробуйте
ssh me@remote echo $(which hg)
, хотя я не знаю, почему это не сработало бы по-другому. Иwhich
должен жаловаться, если он не находит программу, так что, вероятно, это не проблемаPATH
, если она не установлена.2. Я всегда видел, что либо выводит путь к программе с указанием имени (т. Е. Какой ls будет печатать /bin/ls), и если такой программы нет, она ничего не печатает, но возвращает 1.
3. У меня нет вашего обширного опыта, но в моей системе он довольно сильно жалуется. Вы попробовали мое предложение?
4. Я попробовал это предложение, но оно напечатало местоположение двоичного файла hg на моем локальном компьютере.
5. Возможно
ssh me@remove bash -c "which hg"
(или в зависимости от того, какую оболочку вы хотите).
Ответ №1:
Это должно сработать (как упоминалось в ooga).
ssh me@remote "which hg || whereis hg"