파일에서 행을 읽을 때 행 부분 문자열 문제

파일에서 행을 읽을 때 행 부분 문자열 문제

DMGR_PATH.out파일에 다음이 포함됨

/opt/IBM/WebSphere/70/AppServer/profiles/Dmgr01/config CELLNAME
/IBM/websphere/was7.0/profiles/Dmgr01/config CELLNAME

이제 파일을 읽고 아래와 같이 줄을 부분 문자열로 묶으려고 합니다.

while IFS= read -r PATH; do

        if [[ $PATH == /IBM/* ]] && [[ "$1" == "XX" ]]; then
        SEARCH_DIR=$PATH
        else if [[ $PATH == /opt/* ]] && [[ "$1" == "YY" ]]; then
        SEARCH_DIR=$PATH
                fi
        fi
done<DMGR_PATH.out

echo "$SEARCH_DIR" | cut -d' ' -f1

하지만 이런 오류가 표시됩니다.

a: line 9: cut: No such file or directory

이 문제를 해결하는 데 도움을 줄 수 있는 사람이 있나요?

답변1

PATH이 변수를 스크립트에서 루프 변수로 사용합니다. 이는 외부 유틸리티/명령을 찾기 위해 쉘에서 사용하는 환경 변수이기도 합니다.

cut이것이 루프 후에 외부 유틸리티를 찾을 수 없는 이유입니다.

다른 변수 이름을 사용하세요.

일반적으로 저는 개인적으로 , 및 HOME와 같이 쉘 자체에서 스크립트로 내보낸 변수 값을 사용하려는 경우가 아니면 쉘 스크립트에서 대문자 변수 이름을 사용하지 않는 경향이 있습니다 .PWDPATH

관련 정보