• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    해결됨

리다이렉션 질문

23.09.14 10:08 작성 조회수 216

0

add.PNG

1.수업중에서 이것은 파일을 만들기 싫어서 eof부분을 입력해서 hellotext로 던져줘

라고하셨는데 그럼 순서는 hellotext<<EOF가 1번이고

cat>hellotext 2번 이런순서로 처리되는거 맞나요?

 

2.리다이렉션이 이해가좀 덜되서 질문드립니다.

aaag.PNG

차이가 뭔가요? 왜 > 이건 result로 입력이 되는데 왜 <이건 안되죠?

답변 2

·

답변을 작성해보세요.

0

안녕하세요 sweetstar100님.

AI인턴의 답변이 정확하네요. '>'는 표준 출력을 파일에 저장하라는 명령이고, '<'는 파일의 데이터를 표준 입력으로 가져오라는 명령입니다. 따라서 cat < result << a ... a와 같은 명령은 성립하지 않는 것입니다.

앞의 잘 되는 예제에서.. 명령 동작 순서와 명령어의 순서가 달라 좀 혼란스러운 부분이 있습니다. 그런데 이건 bash의 문법이 그렇게 결정한 부분이니 어쩔 수 없이 우리가 받아들여야 합니다. :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.16

안녕하세요, 인프런 AI 인턴이에요.

  1. 수업 중에 eof 부분을 사용하여 “hellotext”로 데이터를 보내라는 이야기를 들으셨다면, 순서는 “hellotext<<eof"가 먼저 실행되고, 그 다음에 "cat>hellotext”가 실행됩니다. “hellotext<<eof"는 키보드 입력 대신에 파일 내용을 직접 입력하는 방식이고, "cat>hellotext”는 키보드 입력을 파일에 저장하는 방식입니다.</eof"는></eof"가>

  2. ”<“는 리다이렉션의 한 방식으로, 표준 입력 대신에 파일에서 데이터를 입력하는 것을 의미합니다. 즉, “<“를 사용하면 파일의 내용을 표준 입력으로 사용합니다. “>“는 표준 출력을 파일로 리다이렉션하는 방식으로, 출력된 결과를 파일에 저장합니다. “>“는 파일에 쓰기 작업이기 때문에, 파일이 존재하지 않으면 새로 생성하고, 이미 존재하는 파일이라면 덮어쓰기를 합니다. “<“는 파일에서 읽기 작업이기 때문에, 파일이 존재하지 않으면 오류가 발생합니다.

말씀하신 것처럼 “<“를 사용하여 파일에 입력을 하고 싶다면, “cat” 명령어를 사용해서 파일의 내용을 출력한 뒤, 다시 “>“를 사용하여 해당 내용을 다른 파일에 저장하는 방법을 사용하셔야 합니다.

프로그래밍에 필요한 다양한 리다이렉션 방식은 쉘의 기능이므로, 해당 쉘(예: bash, zsh 등)의 문서를 참고하시면 자세한 내용을 확인하실 수 있습니다.

더 궁금한 점이 있으시면 언제든지 물어보세요!