¿Por qué un comportamiento diferente a ejecutar el command bash directamente?

Intento crear un alias para abrir mi log fie

alias open_log='date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log;' 

Cuando ejecuto ese alias

open_log

tengo

queue: no se puede abrir '/home/benu/logs/reconfig-.log' para leer: No existe ningún file o directory

Pero si corro

" Lo que establecí para ese alias "

 date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log; 

Funciona perfectamente bien.

 + service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ] + mkdir -p /etc/nginx/sites-available + cp /root/portal-data/sites-available/default-https /etc/nginx/sites-available/default + '[' '!' -f /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem ']' + echo 'Error: Unable to find certificate at /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem' Error: Unable to find certificate at /etc/ssl/mywifibusiness.trg.telenet.be.cert.pem + exit 1 Error: Executing /home/benu/reconfig.d/70-ssc-portal.sh returned 1 Reconfigure aborted 

¿Por qué se están comportando diferente? ¿Alguien puede elaborar?

¿Cómo arreglo mi alias para que funcione?

Lo siento, @ihue. Me equivoqué al comenzar. Felicitaciones a @ilkkachu.

Compare el alias con la línea de command, publicada antes de la edición:

 alias 'date=date +%y%m%d;sudo tail -n 10 ~/logs/reconfig-$date.log;' date=`date +%y%m%d`;sudo tail -n 10 ~/logs/reconfig-$date.log; 

Alias ​​le faltan los backticks. Además, los backticks son todos anticuados . Utilice el siguiente formulario para la sustitución de commands: $(command) .

Las comillas dobles funcionan de la siguiente manera, lo que establece la date cada vez que se establece el alias.

 alias open_log="sudo tail -n 10 ~/logs/reconfig-$(date +%y%m%d).log" 

Las comillas simples funcionan dinámicamente y configuran la date cada vez que llamas al alias.

 alias open_log='sudo tail -n 10 ~/logs/reconfig-$(date +%y%m%d).log'