Ruby에서 공백이 있는 파일 열기

Ruby에서 공백이 있는 파일 열기

Emacs에서 이름에 공백이 포함된 파일을 프로그래밍 방식으로 열어야 하는 경우 어떻게 해야 합니까? 백틱 또는 다음 중 하나를 사용하여 Ruby 스크립트에서 다음 명령을 시도했습니다 popen(…).

emacs "foo bar"

또는

emacs foo\ bar

이름이 각각 foo및 인 두 개의 파일을 엽니다 bar. 하지만 이름이 인 하나를 열고 싶습니다 foo bar.

답변1

쉘에 전달된 명령줄을 사용하여 popen을 호출하고 있기 때문에 인용에 문제가 있습니다. Ruby의 문자열 파서는 큰따옴표나 백슬래시를 사용합니다. 쉘을 우회하는 문자열 배열로 popen을 호출할 수도 있고, emacs foo\\ bar쉘이 볼 수 있도록 Ruby가 남기기를 원하는 백슬래시를 이스케이프하도록 작성할 수도 있습니다.

관련 정보