이 오류가 발생합니다.세게 때리다내 가상 호스팅, 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\('
작은따옴표(''')로 문자를 묶으면 따옴표 안의 각 문자의 리터럴 값이 유지됩니다. 앞에 백슬래시가 있어도 작은따옴표 사이에 작은따옴표를 사용할 수 없습니다.
문자를 큰따옴표('"')로 묶으면 '$', '`', '\' 및 기록 확장이 활성화된 경우 '!'를 제외하고 따옴표 안의 모든 문자의 리터럴 값이 유지됩니다.