bash 스크립트로 줄을 파이프로 묶어 파이프에 데이터가 있는지 확인하고 프로그램에 공급하기 전에 파이프에 데이터가 있는지 확인하고 싶습니다.
내가 찾은 검색 test -t 0
하지만 여기서 작동하지 않습니다. 항상 false를 반환합니다. 파이프에 데이터가 있는지 확인하는 방법은 무엇입니까?
예:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
산출: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
산출: fill
앞서 언급 한 파이프 라인이 출력을 생성하는지 테스트하는 표준 / 정규 방법 과 달리 ? 입력을 프로그램으로 전달하려면 입력을 보존해야합니다. 이것은 한 프로세스에서 다른 프로세스로 출력을 파이프하는 방법을 일반화 하지만 첫 번째 출력이있는 경우에만 실행합니까? 이메일 발송에 중점을 둡니다.