
스크립트의 일부로 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)"