지금 쯤 의 쓸모없는 사용 cat
상은 매우 잘 알려진, 그리고의 언급도 거기에있다 의 쓸모없는 사용echo
(이 질문에 대한 관련되지 않음). " echo
Bash Award에서 쓸모없는 사용"이 필요한지 궁금합니다 . 비과학적인 측정에 따르면 파이프는 heredocs 및 herestrings보다 훨씬 느리게 보입니다.
Heredocs :
for reps in 1 2 3 do time for i in {1..1000} do cat <<'END' test string END done > /dev/null done real 0m1.786s user 0m0.212s sys 0m0.332s real 0m1.817s user 0m0.232s sys 0m0.332s real 0m1.846s user 0m0.256s sys 0m0.320s
Herestrings
for reps in 1 2 3 do time for i in {1..1000} do cat <<< 'test string' done > /dev/null done real 0m1.932s user 0m0.280s sys 0m0.288s real 0m1.956s user 0m0.248s sys 0m0.348s real 0m1.968s user 0m0.268s sys 0m0.324s
리디렉션
for reps in 1 2 3 do time for i in {1..1000} do echo 'test string' | cat done > /dev/null done real 0m3.562s user 0m0.416s sys 0m0.548s real 0m3.924s user 0m0.384s sys 0m0.604s real 0m3.343s user 0m0.400s sys 0m0.552s
일반적으로 heredocs와 herestrings는 속도가 거의 같으며 (여러 테스트에서 하나의 데이터 세트 임) 리디렉션이 50 % 이상 느립니다. 내가 잘못 이해하고 있습니까, 아니면 Bash에서 표준 입력을 읽는 명령의 일반적인 규칙으로 사용할 수 있습니까?
cat <<END
대 cat <<< "test string"
대 echo "test string" | cat
또는 cat <<'END'
대 cat <<< 'test string'
대는 echo 'test string' | cat
확장이 문자열에 쉘에 의해 수행의 동일한 금액을 가지고 있습니다.
$(seq $reps)
?
seq
"상을 허락 할 것입니다 ;-)