리디렉션을 이해하는 데 어려움을 겪고 있습니다. exec <>를 Linux 명령으로 사용하는 방법과 그 의미는 무엇입니까? 예를 들어 설명해 주실 수 있나요?
답변1
리디렉션 <>
연산자는 읽기 및 쓰기를 위해 오른쪽에 있는 단어로 지정된 파일을 엽니다. 왼쪽에 있는 파일 설명자 번호(이 번호가 생략된 경우 대부분의 쉘에서는 0)가 파일에 연결됩니다.
예:
$ echo Hello >file
Hello
파일 에 문자열을 쓰고 그 뒤에 개행 문자가 옵니다.
$ { read -r message <&3; printf 'Got "%s"\n' "$message"; echo Good bye >&3; } 3<>file
Got "Hello"
그러면 파일 설명자 3에서 읽고 쓰기 위해 파일이 열립니다. 파일 설명자 3에서 문자열을 읽고 터미널에 인쇄합니다. 그런 다음 동일한 파일 설명자에 새 문자열이 기록됩니다.
$ cat file
Hello
Good bye
이제 파일에는 이전 명령에서 작성한 추가 문자열이 포함됩니다. 문자열은 Hello
파일에 쓸 때 파일 포인터가 있는 곳이기 때문에 개행 문자 뒤에 삽입됩니다 . 나중에 파일에 더 많은 데이터가 있으면 Hello
문자열 Good bye
이 일부 데이터를 덮어씁니다.
답변2
이해하려고 노력 해봐 cat
.
cat
평소대로 사용할 수 있습니다 .
cat > somefile
control+d
이제 일부 입력을 작성할 수 있으며 입력이 완료된 후리디렉션>
운영자 와 함께일부 파일.
지금 시도해보세요:
cat <> somefile
cat
이전과 동일한 작업을 수행합니다.
하지만 입력이 없을 것입니다일부 파일.
지금 시도해보세요:
cat <(echo "hello world")> somefile
이제 약간의 입력이 있을 것입니다.일부 파일리디렉션 연산자를 광범위하게 활용하세요.