새 쉘 명령에서 bash 변수에 저장된 이스케이프된 파일 이름 문자열을 어떻게 사용할 수 있습니까? [복사]

새 쉘 명령에서 bash 변수에 저장된 이스케이프된 파일 이름 문자열을 어떻게 사용할 수 있습니까? [복사]

질문:

변수에 이스케이프된 문자열이 저장되어 있습니다.

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'

그리고 당신은 그것으로부터 도망쳐서는 안 됩니다 :. 그들은 그것이 필요하지 않으며 그것은 그것을 파괴할 것입니다.

관련 정보