La salida del comando canalizado a la variable no funciona

La salida del comando canalizado a la variable no funciona

Cuando intento lo siguiente no hay problema:

$ date '+%y%m' | sed 's/.\(.*\)/\1/'
906

Pero cuando intento almacenarlo en una variable parece que no hay nada almacenado:

$ dd=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
$ echo "$dd"

Sé que puedo obtener el mismo resultado si no uso sed:

$ dd=`date '+%y%m'`
$ echo ${dd: -3}
906

pero tengo curiosidad por saber por qué no funciona con sed.

Respuesta1

No utilice comandos como nombre de variable. ddes su destructor de discos, mire man ddy pruebe con otro nombre de variable o algo como esto:

d=`date '+%y%m' | sed 's/.\(.*\)/\1/'`
echo $d

Quizás esta parte del bashmanual también te sea útil:

man bash | sed -n '/^DEFINITIONS/,/^SHELL GRAMMAR/p' | less

información relacionada