종료되지 않은 정규식 및 예상치 못한 개행 문자

종료되지 않은 정규식 및 예상치 못한 개행 문자

awk명령을 실행하는 동안 오류가 발생했습니다.

echo $(awk 'BEGIN {printf "%.2f\n",'$sizes'/1073741824}')GB >> $MAINS/logs/bks1

정수를 크기(GB)로 변환하는 것입니다. 하지만 이런 오류가 발생합니다

awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                            ^ unterminated regexp
awk: cmd. line:1: BEGIN {printf "%.2f GB\n",/1073741824}
awk: cmd. line:1:                                       ^ unexpected newline or end of string

때로는 잘 작동

이 명령을 실행하기 전에 절전 모드를 추가해야 합니까? 시간을 내어 도움을 주신 모든 분들께 감사드립니다.

답변1

변수가 비어 있으면 sizes예상대로 빈 문자열로 대체됩니다. 스크립트의 관련 부분에서 awk슬래시로 시작하는 모든 문자열은 정규식의 시작으로 예상되지만 다른 슬래시로 끝나는 경우에만 유효한 정규식이 됩니다. sizes이 작업을 수행하려면 스크립트가 비어 있지 않은지 확인해야 합니다 .

set -o nounset스크립트에서 정의되지 않은(null이 아닌) 변수에 대한 알림을 받고, -o errexit이러한 오류가 발생할 경우 이를 조합하여 스크립트를 중지합니다.

관련 정보