Without quotes, local-parts may consist of any combination of
alphabetic characters, digits, or any of the special characters
! # $ % & ' * + - / = ? ^ _ ` . { | } ~
수정 방법
스크립트는 기본적으로 /를 구분자로 사용하는 sed 명령에서 실패합니다.
이메일 주소의 local-part에 콜론(:)은 허용되지 않는 문자이므로, 쉼표나 세미콜론과 같은 다른 문자가 초래할 수 있는 부수 효과(예: sed 패턴에서 콜론은 이스케이프해야 함 — ]를 사용하면 콜론을 이스케이프할 필요가 없음) 없이 / 대신 사용할 수 있습니다:
589번째 줄: smtp_domain=$(echo $notification_email | sed -e "s/.*@//") 은 smtp_domain=$(echo $notification_email | sed -e "s:.*@::") 이어야 합니다.
648번째 줄: DISCOURSE_DEVELOPER_EMAILS는 이메일 주소를 구분하기 위해 ,를 사용하므로, :도 안전하게 사용할 수 있습니다.
675번째 줄은 이 버그의 원인입니다: sed -i -e "s/^ #\?DISCOURSE_SMTP_USER_NAME:.*/ DISCOURSE_SMTP_USER_NAME: $smtp_user_name/w $changelog" $web_file 은 sed -i -e "s:^ #\?DISCOURSE_SMTP_USER_NAME\:.*: DISCOURSE_SMTP_USER_NAME\: $smtp_user_name:w $changelog" $web_file 또는 sed -i -e "s]^ #\?DISCOURSE_SMTP_USER_NAME:.*] DISCOURSE_SMTP_USER_NAME: $smtp_user_name]w $changelog" $web_file 로 수정할 수 있습니다.