¿Cuál es la diferencia entre las funciones integradas del shell (como cd
o echo
) y los atajos de teclado del shell (como ctrl+u
o ctrl+l
)?
Ambos me parecen "integrados", ¿cuál es la principal diferencia en cuanto a la arquitectura del sistema?
Yo personalmente uso Bash pero creo que esta pregunta es relevante para muchos otros sh
shells.
Respuesta1
La mayoría de las funciones integradas cambian el estado/comportamiento del shell ("permanentemente"). echo
y printf
son excepciones.
^U
y ^L
son combinaciones de teclas. Simplemente manejan la edición de la línea de entrada. Podrías hacer lo mismo sin estas funciones. Simplemente ahorran tiempo. Después de ejecutar un comando, no importa si antes se utilizó una función de combinación de teclas.
La diferencia quizás más obvia es que las combinaciones de teclas no son un comando que pueda ejecutar desde la línea de comando. Necesita un incorporado ( bind
) para configurarlos (shell "cambio de estado").