dc
명령은 파일 또는/또는 표준 입력에서 읽을 수 있습니다.
사용자 입력을 인쇄하려면 다음을 수행하십시오.
cat essai_dc
[enter a number : ]
n
?
p
dc essai_dc
enter a number : 4
4
이제 다음을 사용하려고 하면 heredoc
:
dc <<EOF
> [enter a number : ]
> n
> ?
> p
> EOF
enter a number : dc: stack empty
표준 입력과 동일한 결과를 얻습니다.
cat essai_dc | dc
enter a number : dc: stack empty
주문하다? 그것을 가져와 p
실행했지만 스택이 비어 있습니다.
작동하게 만드는 것이 가능합니까 ( dc
입력을 기다리라고 말하십시오)
답변1
?
표준 입력에서 입력을 받는 방법은 다음과 같습니다. 문서는 다음과 같습니다. dc
스크립트를 제공하려면 다른 파일 설명자를 사용해야 합니다 . 다음이 포함된 시스템 /dev/fd/n
:
dc /dev/fd/3 3<< 'EOF'
[enter a number : ]
n
?
p
EOF
또는 ksh 스타일 프로세스 대체를 사용할 수 있습니다( /dev/fd/n
아래에서 일반적으로 사용됨).
dc <(cat << 'EOF'
[enter a number : ]
n
?
p
EOF
)
또는 여기에서 문서를 취소하고 cat
(일반적으로) 외부 유틸리티를 호출합니다.
dc <(printf %s \
'[enter a number : ]
n
?
p
'
)
일부 dc
구현(예: GNU)에서는 스크립트 내용을 인수로 전달할 dc
수 있으므로 명령 대체를 사용할 수 있습니다.dc
-e
dc -e "$(cat << 'EOF'
[enter a number : ]
n
?
p
EOF
)"
또는 직접적으로:
dc -e '[enter a number : ]
n
?
p'