따옴표 문자는 표준 입력으로 리디렉션하는 명령으로 사용됩니다.

따옴표 문자는 표준 입력으로 리디렉션하는 명령으로 사용됩니다.

저는 학생이고 파일 이름에 따옴표, 큰따옴표 및 기타 기호가 포함된 단어를 할당하는 연습을 시도하고 있습니다.

문제는 기대했던 결과를 얻지 못한다는 것입니다.
스케이프 바를 사용하여 기호를 스케이프하고 있지만 파일 이름을 나열하면 파일 이름의 시작과 끝에 예상치 못한 작은 따옴표가 나타나고 스케이프 바는 작은 따옴표 앞에 있어야 하는 작은 따옴표로 둘러싸여 있습니다. 파일 이름의 일부입니다. 다소 혼란스럽습니다. 다음을 보여드리겠습니다.

$ echo > \"\\\?\$\*\'\'\*\$\?\\\"

나는 이것을 기대한다:

$ ls
"\?$*''*$?\"

그러나 내가 얻는 것은 이것이다:

$ ls
'"\?$*'\'''\''*$?\"'

큰따옴표를 작은따옴표로 묶거나 그 반대로 바꾸는 등 다른 방법으로 이 작업을 수행해 보았지만 항상 동일한 결과를 얻었습니다. 나는 다른 컴퓨터에서 동일한 연습을 수행하여 훌륭한 결과를 얻었습니다. 더 흥미롭게도 작은 따옴표와 큰 따옴표가 모두 표준 입력으로 리디렉션되는 명령으로 작동한다는 사실을 발견했습니다. 이는 예상치 못한 이름 표시와 관련이 있는 것으로 의심됩니다.

$ '
> 

$ "
>

이 명령은 표준 입력을 표시하는 것 외에는 아무 것도 수행하지 않는 것 같습니다. 이게 정상인가요? 무슨 일이야? 어떡해?

답변1

다른 컴퓨터에서는 버전이나 구성 문제로 인해 예상되는 동작이 다른 것 같습니다 ls. ls -N따옴표에 관해서는 명령이 아닌 것 같지만, 따옴표가 불완전한 것으로 해석되어 제대로 닫히지 않은 경우 프롬프트가 나타납니다. @don_crissti 및 @Marcus Müller 덕분에 모든 설명과 관련 링크가 댓글에 있습니다.

관련 정보