<Anterior | Contenido | Siguiente>
Expansión
Cada vez que escribimos un comando y presionamos la tecla enter, golpear realiza varios procesos sobre el texto antes de que ejecute nuestro comando. Hemos visto un par de casos de cómo una secuencia de caracteres simple, por ejemplo, “*”, puede tener mucho significado para el shell. El proceso que hace que esto suceda se llama expansión. Con la expansión, entramos en algo y se expande en otra cosa antes de que la cáscara actúe sobre él. Para demostrar lo que queremos decir con esto, echemos un vistazo a la echo mando. echo es un shell incorporado que realiza una tarea muy sencilla. Imprime sus argumentos de texto en la salida estándar:
[yo @ linuxbox ~] $ echo esto es una prueba
esto es una prueba
[yo @ linuxbox ~] $ echo esto es una prueba
esto es una prueba
Eso es bastante sencillo. Cualquier argumento pasado a echo se muestra. Probemos con otro ejemplo:
[yo @ linuxbox ~] $ eco *
Documentos de escritorio ls-output.txt Música Imágenes Plantillas públicas Vídeos
[yo @ linuxbox ~] $ eco *
Documentos de escritorio ls-output.txt Música Imágenes Plantillas públicas Vídeos
Entonces, ¿qué acaba de pasar? Por qué no echo impresión "*"? Como recordamos de nuestro trabajo con comodines, el carácter "*" significa coincidir con cualquier carácter en un nombre de archivo, pero lo que no vimos en nuestra discusión original fue cómo lo hace el shell. La respuesta simple es que el shell expande el "*" en otra cosa (en este caso, los nombres de los archivos en el directorio de trabajo actual) antes del echo se ejecuta el comando. Cuando la tecla enter está
presionado, el shell expande automáticamente cualquier carácter calificado en la línea de comando antes de que se ejecute el comando, por lo que el echo El comando nunca vio el “*”, solo su resultado ampliado. Sabiendo esto, podemos ver que echo se comportó como se esperaba.