![새 쉘 명령에서 bash 변수에 저장된 이스케이프된 파일 이름 문자열을 어떻게 사용할 수 있습니까? [복사]](https://linux55.com/image/11860/%EC%83%88%20%EC%89%98%20%EB%AA%85%EB%A0%B9%EC%97%90%EC%84%9C%20bash%20%EB%B3%80%EC%88%98%EC%97%90%20%EC%A0%80%EC%9E%A5%EB%90%9C%20%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84%EB%90%9C%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
질문:
변수에 이스케이프된 문자열이 저장되어 있습니다.
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'
그리고 당신은 그것으로부터 도망쳐서는 안 됩니다 :
. 그들은 그것이 필요하지 않으며 그것은 그것을 파괴할 것입니다.