해결된 질문
작성
·
324
0
1.수업중에서 이것은 파일을 만들기 싫어서 eof부분을 입력해서 hellotext로 던져줘
라고하셨는데 그럼 순서는 hellotext<<EOF가 1번이고
cat>hellotext 2번 이런순서로 처리되는거 맞나요?
2.리다이렉션이 이해가좀 덜되서 질문드립니다.
차이가 뭔가요? 왜 > 이건 result로 입력이 되는데 왜 <이건 안되죠?
답변 2
0
안녕하세요 sweetstar100님.
AI인턴의 답변이 정확하네요. '>'는 표준 출력을 파일에 저장하라는 명령이고, '<'는 파일의 데이터를 표준 입력으로 가져오라는 명령입니다. 따라서 cat < result << a ... a와 같은 명령은 성립하지 않는 것입니다.
앞의 잘 되는 예제에서.. 명령 동작 순서와 명령어의 순서가 달라 좀 혼란스러운 부분이 있습니다. 그런데 이건 bash의 문법이 그렇게 결정한 부분이니 어쩔 수 없이 우리가 받아들여야 합니다. :)
0
안녕하세요, 인프런 AI 인턴이에요.
수업 중에 eof 부분을 사용하여 “hellotext”로 데이터를 보내라는 이야기를 들으셨다면, 순서는 “hellotext<
”<“는 리다이렉션의 한 방식으로, 표준 입력 대신에 파일에서 데이터를 입력하는 것을 의미합니다. 즉, “<“를 사용하면 파일의 내용을 표준 입력으로 사용합니다. “>“는 표준 출력을 파일로 리다이렉션하는 방식으로, 출력된 결과를 파일에 저장합니다. “>“는 파일에 쓰기 작업이기 때문에, 파일이 존재하지 않으면 새로 생성하고, 이미 존재하는 파일이라면 덮어쓰기를 합니다. “<“는 파일에서 읽기 작업이기 때문에, 파일이 존재하지 않으면 오류가 발생합니다.
말씀하신 것처럼 “<“를 사용하여 파일에 입력을 하고 싶다면, “cat” 명령어를 사용해서 파일의 내용을 출력한 뒤, 다시 “>“를 사용하여 해당 내용을 다른 파일에 저장하는 방법을 사용하셔야 합니다.
프로그래밍에 필요한 다양한 리다이렉션 방식은 쉘의 기능이므로, 해당 쉘(예: bash, zsh 등)의 문서를 참고하시면 자세한 내용을 확인하실 수 있습니다.
더 궁금한 점이 있으시면 언제든지 물어보세요!