У меня есть команда find как часть скрипта и экспорт значений в переменную, как показано ниже.
export value1="'find /app/new1 -name '*service.sh*'"
После тестирования я обнаружил, что на некоторых хостах каталог отличается, как показано ниже.
/sbclocal/app/new1
Как мне проверить и передать оба значения в одно и то же значение?
как я нахожу этот скрипт и выполняю его с остановкой или запуском позже.
решение1
Если я правильно понял вопрос, то существует несколько способов достичь желаемого состояния.
find
поддерживает указание нескольких путей. Так что не составит большого труда выразить это так:export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
Это приведет к появлению сообщения об ошибке, если один из каталогов отсутствует, но (в зависимости от вашего способа) это может не повлиять на ваш скрипт в целом.
Передайте две команды значению:
export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
Этот вариант дает ответ, который ближе к вашему вопросу (передача двух команд одной и той же переменной), но не выглядит лучшим решением.
Способ с проверками:
export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"