Упомяните множественный путь, основанный на существовании в Linux - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть два разных сервера - основной и bpm. Я буду писать общий сценарий. В этом случае путь меняется только на имя сервера:

На главном сервере -> / apps / core / SharedLib / и

На BPM-сервере -> / apps / bpm / SharedLib /

Поэтому я должен упомянуть путь в той же строке, и сервер должен решить, основываясь на существовании путей.

Так что мне нужно что-то вроде

cd /apps/<core|bpm>/SharedLib/

Как правильно это назвать?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2020

если команда hostname возвращает имена серверов в том виде, в каком они отображаются в вашей структуре dir, вы также можете сделать

cd /apps/$(hostname)/SharedLib/

В противном случае вы также можете просто иметь переменную с фактическим именем хоста в вашем скрипте и используйте переменную в вашей команде cd:

cd /apps/$your_var/SharedLib/
0 голосов
/ 19 февраля 2020

Я решил аналогичную проблему с моими серверами, используя синтаксис: cd /apps/*/SharedLib/

Объяснение:

* - подстановочный знак для bash. Это регулярное выражение. Он ищет все каталоги, которые находятся внутри /apps, но выбирает только тот подкаталог, в котором есть SharedLib. Вы можете запустить ls /apps/* и другие ls команды, чтобы полностью понять его функциональность

Надеюсь, это поможет

...