bash -c 'some command'retiene el acceso a la entrada estándar de la persona que llama, por lo que los readcomandos de lectura desde la entrada estándar funcionarán normalmente. bash <<< 'some command'sustituye esa entrada con la línea que se pasa en, por lo que bash -c caty bash <<< cathacer cosas diferentes.
$ bash -c cat
abc
abc
^D
$ bash <<< cat
$
Por otro lado, puede utilizar esa función para proporcionar su propia entrada estándar para utilizarla $'...', si tiene mucho cuidado:
$ bash <<< $'read x y\nabc def ghi\necho $y'
def ghi
$
No me gustaría confiar en eso, pero a veces podría ser conveniente.
bash -ctambién permite que los argumentos se pasen al script y $0se establezcan:
bash -c 'some command' sh abc def
se establecerá $1en abcy $2para defadentro some command.