나는 많은 스크립트를 이식해 왔습니다.운영 체제 7.1. 나는 이 유닉스 시스템에 대한 이전 경험이 없습니다.
스크립트는 및 에서 실행되고 /bin/sh
이에 따라 달라집니다 /dev/stdout
. 이러한 파일은 표준화되지 않은 것으로 알려져 있으며/dev/stdin
/dev/stderr
운영 체제 7.1구현되지 않은 것 같습니다.
/proc
VFS가 존재한다는 것을 발견 한 /dev/std{in|out|err}
후 /proc/$$/fd/{0|1|2}
.pts
000( c---------
).
/bin/bash
/dev
를 포함한 많은 장치를 에뮬레이트하는 것으로 알려져 있습니다 /dev/std*
. 전환 및 사용에 대한 제한된 실험은 성공적 /bin/bash
이었습니다 . 그러나 모든 스크립트를 전환하고 테스트하는 데는 시간이 많이 걸립니다./bin/sh
/dev/std*
/bin/bash
질문:
표준 IO 파일을 처리하는 방법운영 체제 7.1아래에 /bin/sh
? 예를 들어 채용 중입니다. /dev/tty
방법?
// 이식할 스크립트 중 하나의 호출 예:
# param_protocol parameter apparently needs a file representation of the stdout
black_box_binary param1=$value1 param2=$value2 param_protocol=/dev/stdout
답변1
<&0
읽기 및 쓰기를 통해 >&1
이러한 파일을 바꿀 수 있습니다 >&2
. 그들은 각각 stdin, stdout 및 stderr입니다.
답변2
/dev/std{in,out,err}
이러한 파일이 단지 심볼릭 링크일 가능성이 있습니까 /proc/$$/fd/{0,1,2}
? 바라보다"표준 오류 및 기타 출력 리디렉션”에 대한 배경 정보가 있습니다. 그러나 이전 게시물에 따르면,">/dev/stdout"의 이식성쉘에 의존하는 것 같습니다.