질문:
변수에 이스케이프된 문자열이 저장되어 있습니다.
escapedFileName='/dbDumps/Mon\ Oct\ \ 1\ 15\:22\:50\ UTC\ 2018.sql'
그러나 다음 명령에서 이 파일 이름을 사용하려고 할 때마다 이 경로가 존재하지 않는다는 오류가 발생합니다(존재하더라도).
/usr/bin/mysql -u root -pmypassword system < "$escapedFileName";
문자열 대신 경로를 사용하면 작동합니다.
/usr/bin/mysql -u root -pmypassword system < /dbDumps/Mon\ Oct\ \ 1\ 15\:22\:50\ UTC\ 2018.sql
내가 뭘 잘못했나요?
답변1
따옴표 사이에 텍스트를 넣을 때 이스케이프가 필요하지 않습니다.
그러니 삭제 \
하세요
escapedFileName='/dbDumps/Mon Oct 1 15:22:50 UTC 2018.sql'
그리고 당신은 그것으로부터 도망쳐서는 안 됩니다 :
. 그들은 그것이 필요하지 않으며 그것은 그것을 파괴할 것입니다.