Como passar a variável de exportação com duas saídas de comando find em shell script

Como passar a variável de exportação com duas saídas de comando find em shell script

Eu tenho um comando find como parte de um script e exporto os valores para a variável como abaixo

export value1="'find /app/new1 -name '*service.sh*'"

Após o teste, percebi que em alguns hosts o diretório é diferente como abaixo

/sbclocal/app/new1

Como faço para verificar e passar ambos para o mesmo valor?

enquanto encontro esse script e o executo com parar ou iniciar mais tarde.

Responder1

Se entendi a pergunta corretamente, existem poucas maneiras de atingir o estado desejado.

  1. findsuporta vários caminhos especificados. Portanto, não é grande coisa colocar desta forma:

    export value1="$(find /app/new1 /sbclocal/app/new1 -name '*service.sh*')"
    

    Isso produzirá uma mensagem de erro, se um dos diretórios estiver faltando, mas (dependendo da sua maneira) pode não afetar o seu script em geral.

  2. Passe dois comandos para valor:

    export value1="$(find /app/new1 -name '*service.sh*' && find /sbclocal/app/new1 -name '*service.sh*')"
    

    Esta opção fornece uma resposta mais próxima da sua pergunta (passando dois comandos para a mesma variável), mas não parece uma solução melhor.

  3. Maneira com cheques:

    export value1="$(for dir in /app/new1 /sbclocal/app/new1; do [ -d $dir ] && find $dir -name '*service.sh*'; done)"
    

informação relacionada