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