Script Bash
Como hacer que un script de bash que utiliza el comando cd sea capaz de
- Interactuar con el entorno => el script se ejecuta con un punto delante o un source, de este modo:
$ . scritp.sh
$ source script.sh
De este modo las acciones o cambios que se realicen
durante la ejecución del scritp seguirán vigentes después de que
finalice. Los valores de las variables creadas con el script, seguirán
siendo válidas. Así como si se accede a un directorio, la shell seguirá
en él después.
Este efecto sólo es posible gracias a la ejecución con
"source o ." , si no se quiere esto, se puede ejecutar de manera
normal: ./scritp
- Para poder manejar nombres de
archivo con espacios se ha de tener en cuenta que los comandos de Bash
no interpretan bien los espacios ni las \ para señalarlos. Así que o
bien se eliminan las barras(no se bien aún cómo). Si te tiene un nombre
de directorio formado por una o más palabras separadas por espacios se
debe realizar esto:
dir="./directorio nombre largo"
cd "$dir"
echo "este es el directorio $dir"
Gracias a las comillas cd no tiene problemas para reconocer el nombre y ejecutar correctamente la orden.
- Este es el script prueba con el que he estado trabajando:
#!/bin/bash
# dir=`./directorio\ mania`
#echo "hola $dir"
# cd "`echo $dir`"
#cd ./directorio\ mania
dir="./directorio\ mania"
cd "$dir"
echo "este es el directorio $dir"
mkdir hola
echo "this is the directory" `pwd`
#exit 0