while read の謎
このCGIに単行の改行無しデータを送ると、件数が0件になる
#!/bin/bash echo -e "Content-type: text/plain;charset=UTF-8\n\n" i=0 while read line do echo "$line" (( i++ )) done echo "$i 件 成功"
これは良い。
$ printf "aaaaa\nbbbb\n" | ./readtest Content-type: text/plain;charset=UTF-8 aaaaa bbbb 2 件 成功
これも良い。
$ printf "aaaaa\n" | ./readtest Content-type: text/plain;charset=UTF-8 aaaaa 1 件 成功
これは????
$ printf "aaaaa" | ./readtest Content-type: text/plain;charset=UTF-8 0 件 成功
$ printf "aaaaa\nbbbb" | ./readtest Content-type: text/plain;charset=UTF-8 aaaaa 1 件 成功
最終行に改行が無いとread文は読み込まない仕様だそうです。