현재 리디렉션, 파이프, exec 등의 작은 쉘을 코딩하고 있습니다. I/O 리다이렉션 문제를 해결하기 위해 리눅스 쉘이 취하는 단계들을 알아 내려고 노력했다.Linux 쉘에서 입출력 스트림 재 지정. 쉘은 리다이렉션 명령을 어떻게 처리합니까?
나는에 도움이 필요한 것에 대한 몇 가지 질문 : 그것은 리디렉션을 찾는 경우
어느 방향에서 쉘 명령 행에서 읽어 않습니다를? 왼쪽에서 오른쪽 또는 그 반대? 재귀를 사용합니까?
셸에서 검색해야하는 경우는 무엇입니까? (확실하지 않은 변화를 많이 포함 할 수 많은 또는 단지 몇이있는 경우) 어쨌든
가, 일부는 내가 생각할 수있는 (내가 틀렸다면 정정 해줘)입니다
cmd > file1 # stdout of cmd goes to file
cmd file1 > file2 # stdout of cmd with file1 as an argument goes to file2
cmd file2 < file1 # stdin on file2 comes from file1
이제 다음과 같은 경우에 프로세스를 알지 못합니다 (쉘이이를 찾는 방법과 같이). 쉘이 소요 단계는 당신이 단지 표준 입력과 표준 출력의 리디렉션이 문제 때문에 지난 두 예제가 정확히 동일하지 않습니다 처리되는 순서를 재 지정으로
cmd file2 > file3 < file1 # using "tee" in place of "cmd" I don't know
# how to do the dups and when to exec
cmd file2 <file3> file1 # same^
는 왼쪽에서 판독 이후 I가 을 티 후 티 실행 입력 세트 FILE3을을 file2 출력에 세트 FILE1을 file1에 출력에 티 설정 티 FILE1> 파일 2
John
아니요. 다시 읽으십시오. 이해가되지 않습니다. "file1을 file2로 출력하도록 설정"할 수 없습니다. 파일은 파일이며 명령이 아닙니다. –
'tee file1> file2