Est-il possible d'utiliser plusieurs here-docs dans bash?

Peut-on utiliser plusieurs here-docs pour fournir une input à une command dans bash?

$ cat <<<foo <<<bar bar $ cat <<EOF1 <<EOF2 > foo > EOF1 > bar > EOF2 bar 

Évidemment, dans les deux cas, le second here-doc est utilisé comme stdin, et remplace la première reference. La solution est-elle d'utiliser les echo place?

 $ cat <(echo -n foo) <(echo bar) foobar 

En outre, pour une raison quelconque, l'utilisation d'une combinaison n'a pas fonctionné pour moi. Pourquoi serait-ce?

 $ cat <<<foo <(echo bar) bar $ cat <(echo -n foo) <<<bar foo 

Tu peux faire:

 cat /dev/fd/3 3<< E1 /dev/fd/4 4<< E2 foo E1 bar E2 

Il ne peut y avoir qu'un seul stdin, car il n'y a qu'un seul descripteur de file 0.

 cat << EOF eof EOF 

est court pour:

 cat /dev/fd/0 0<< EOF eof EOF 

Et:

 cat <<< foo 

est:

 cat /dev/fd/0 0<<< foo 

Vous devez vous décider quoi ouvrir sur le descripteur de file 0.

 cat <(echo foo) 

Est:

 cat /dev/fd/123 

123 est un descripteur de file à un tube, et en parallèle, bash exécute echo foo dans un autre process avec le stdout redirigé vers l'autre extrémité du tube.

Une fois que vous passez un nom de file au cat , le cat ne lit plus depuis stdin. Vous auriez besoin de:

 cat <(echo foo) /dev/fd/0 << EOF bar EOF 

Ou:

 cat <(echo foo) - << EOF bar EOF 

( - est de dire à cat de lire à partir de stdin).