Trabajando con rutas y sustitución de comandos
En este paso, aprenderá cómo usar el comando echo
con sustitución de comandos para mostrar la salida de otros comandos.
Sustitución de comandos en Echo
La sustitución de comandos le permite reemplazar un comando por su salida. Esto se hace utilizando la sintaxis $(command)
. Cuando la shell encuentra esta estructura, ejecuta el comando dentro de los paréntesis y reemplaza todo el $(command)
por la salida del comando.
Usemos la sustitución de comandos para mostrar su directorio de trabajo actual:
echo "Current directory: $(pwd)"
Cuando ejecute este comando, debería ver una salida similar a la siguiente:
Current directory: /home/labex/project
En este ejemplo, $(pwd)
se reemplaza por la salida del comando pwd
, que muestra su directorio de trabajo actual.
Guardar la salida en un archivo
También puede redirigir la salida del comando echo
a un archivo en lugar de mostrarla en la pantalla. Esto se hace utilizando el operador de redirección >
.
Creemos un archivo llamado path_info.txt
en su directorio de proyecto que contenga información sobre su ubicación actual:
cd ~/project
echo "Current path: $(pwd)" > path_info.txt
Este comando creará un archivo llamado path_info.txt
en su directorio de proyecto con el contenido "Current path: /home/labex/project" (o cualquiera que sea su ruta actual).
Para verificar el contenido del archivo, puede usar el comando cat
:
cat path_info.txt
Debería ver una salida similar a la siguiente:
Current path: /home/labex/project
El operador >
redirige la salida del comando echo
al archivo especificado. Si el archivo ya existe, se sobrescribirá. Si desea agregar contenido a un archivo existente en lugar de sobrescribirlo, puede usar el operador >>
.
Por ejemplo, agreguemos la fecha y la hora a nuestro archivo:
echo "Current date and time: $(date)" >> path_info.txt
Ahora, verifiquemos el contenido del archivo nuevamente:
cat path_info.txt
Debería ver ambas líneas:
Current path: /home/labex/project
Current date and time: Wed Jan 5 10:15:30 UTC 2023
(La fecha y la hora reales reflejarán la fecha y la hora actuales de su sistema.)