Bash 스크립트: 소스 vars.txt를 통해 변수를 정의할 때 해당 파일이나 디렉터리가 없습니다.

Bash 스크립트: 소스 vars.txt를 통해 변수를 정의할 때 해당 파일이나 디렉터리가 없습니다.

파일의 해시를 생성하고 이를 vars.txt에 쓴 다음 다음에 스크립트가 실행될 때 해당 변수를 확인하여 파일이 변경되었는지 확인하는 스크립트가 있습니다.

이게 스크립트야그리고변수.txt(접착 상자)

스크립트를 실행할 때 다음을 사용하여 변수를 호출합니다.source /path/to/file

이제 파일을 구문 분석할 때 다음 오류가 발생합니다.

/opt/scripts/AutoCommit/vars.txt: line 2: etchttpdconf_dvhost.conf=925ec4d7bd0dc94c3710bcf5fb2c80f422806bb5  /etc/httpd/conf.d/vhost.conf: No such file or directory

게다가 파일이 변경되면 sed이제 해당 줄이 바뀌지 않고 대신 아래에 한 줄이 추가됩니다. 과거에는 그렇게 하지 않았습니다.

최종 파일을 받게 됩니다이와 같이.최근까지는 이런 일이 발생하지 않았으므로 둘 다 동일한 문제로 인해 발생한 것으로 의심됩니다.

다음은 문제가 있을 수 있다고 생각되는 스크립트의 간단한 버전입니다.

답변1

(점 .)은 정의에서와 같이 변수 이름에 유효한 문자가 아닙니다 vars.txt.

gitinstalled="1"
etchttpdconf_dvhost.conf="925ec4d7bd0dc94c3710bcf5fb2c80f422806bb5  /etc/httpd/conf.d/vhost.conf"
etchttpdconf_dvhost.conf="925ec4d7bd0dc94c3710bcf5fb2c80f422806bb5  /etc/httpd/conf.d/vhost.conf"

답변2

너의 것을 바꿔라

fileVarName="${fileVarName/./_}"

모든 포인트를 완료하세요

fileVarName="${fileVarName//./_}"

관련 정보