Перейти к содержимому

Эхо: несколько команд

0

Привет всем,

В настоящее время я борюсь с необходимостью выполнять несколько команд в эхо. Следующая строка - пример проблемы, с которой я столкнулся:

echo (cd .. && pwd) 

Идея состоит в том, что, когда я в настоящее время нахожусь в папке "home / Documents", вышеуказанный код печатает "home" - но все еще находится в каталоге "home / Documents". Однако вышеприведенная команда не выполняется.

Более общий вопрос: как я могу выполнить несколько команд в эхо и напечатать последний результат (или все результаты, если это невозможно каким-либо другим способом).

Спасибо и всего наилучшего.

528 просмотров
bublitz спросил 7 лет назад
B 1

2 ответа

2

Идея состоит в том, что, когда я в данный момент нахожусь в папке home/Documents, вышеупомянутый код печатает home- но все еще находится в каталогеhome/Documents

Вам не нужно echoвообще, потому что pwdпечатает то, что вы хотите. Использовать этот:

(cd .. && pwd) 

Здесь есть две умные вещи:

  • (whatever)работает whateverв подрубрике. Если cdвнутри этих скобок, он изменит текущий рабочий каталог подоболочки, а не основной (вашей текущей) оболочки.
  • a && bработает, bесли aуспешно (возвращен статус выхода 0). В общем, если вы хотите, чтобы ваш сценарий cdбыл надежным, хорошо всегда проверять его cdуспешность. Это предотвращает запуск других команд в неправильном каталоге.

Обратите внимание, что когда задействованы символические ссылки, вы можете не получить ожидаемый путь. Смотрите этот вики ответ сообщества для деталей.

Kamil Maciorowski ответил 7 лет назад
K 22 826
-1

Я нашел решение:

(cd .. && echo `pwd`) 

Спасибо :)

Почему вы все еще используете эхо? Просто сделайте (cd .. && pwd)

Attie · 7 лет назад · 4
Kamil Maciorowski · 7 лет назад · 2

Да, тебе это нужно. Проблема заключалась в том, что команду нужно выполнить на сервере, и поэтому мне нужно напечатать эхо (чтобы сервер видел команду «pwd», а не текущую папку - что будет недопустимой командой)

bublitz · 7 лет назад · 0
bublitz ответил 7 лет назад
B 1