Eu acho que a pergunta é por que read -d ''
funciona apesar de read -d''
não.
O problema não tem nada a ver com read
, mas é um "problema" de citação. Um ""
/ ''
que faz parte de uma string (word) simplesmente não é reconhecido. Deixe o shell mostrar o que você vê / executa:
start cmd:> set -x
start cmd:> echo read -d " " foo
+ echo read -d ' ' foo
start cmd:> echo read -d" " foo
+ echo read '-d ' foo
start cmd:> echo read -d "" foo
+ echo read -d '' foo
start cmd:> echo read -d"" foo
+ echo read -d foo