'%EC%9D%84%20%EC%B0%BE%EB%8A%94%20%EB%8F%99%EC%95%88%20%EC%98%88%EC%83%81%EC%B9%98%20%EB%AA%BB%ED%95%9C%20EOF%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이 오류가 발생합니다.세게 때리다내 가상 호스팅, cron 작업에서. 내 명령은 다음과 같습니다
/usr/bin/mysqldump --user=USERNAME --password="C\(mRA0_ifmv\(" DATABASE > ROOTFOLDER/backup/$(date +%F).sql && gzip ROOTFOLDER/backup/$(date +%F).sql
진짜를 숨겼어사용자,데이터 베이스그리고홈 폴더보안 목적으로. 따라서 내 비밀번호로 인해 이 오류가 발생한다는 것을 이해하지만 비밀번호를 변경하고 싶지 않습니다.
열린 대괄호 문자를 어떻게 이스케이프 처리하거나 이 오류를 방지할 수 있으며 "\"가 작동하지 않는 이유는 무엇입니까?
답변1
비밀번호에는 작은따옴표를 사용하세요.
--password='C\(mRA0_ifmv\('
작은따옴표(''')로 문자를 묶으면 따옴표 안의 각 문자의 리터럴 값이 유지됩니다. 앞에 백슬래시가 있어도 작은따옴표 사이에 작은따옴표를 사용할 수 없습니다.
문자를 큰따옴표('"')로 묶으면 '$', '`', '\' 및 기록 확장이 활성화된 경우 '!'를 제외하고 따옴표 안의 모든 문자의 리터럴 값이 유지됩니다.