Tuve este problema y estuve muy confundido por un tiempo.
Resulta que establecí mi variable de entorno $CDPATH
, que normalmente permite que los comandos regulares cd
funcionen de la forma habitual. Sin embargo, estaba ejecutando mi script en modo no interactivo, como "sh" (no "bash"), donde el comportamiento es un poco diferente.Parece que un comando como:
cd subdir # works via interactive bash; not in script run via sh.
funcionará como se espera en mi intérprete interactivo de ingreso, golpe, incluso cuando se ajusta CDPATH
. Sin embargo, cuando ejecuto el comando idénticos en una secuencia de comandos (usando sh
), no pudo con
myscript.sh: line 9: cd: subdir: No such file or directory
he modificado que sea una ruta relativa:
cd ./subdir
y funciona! Creo que la diferencia está en cómo el shell usa CDPATH
. En un caso, busca CDPATH
y su directorio actual, pero en el script solo busca CDPATH
. Esto es similar al comportamiento de PATH
. Si deja .
(el directorio actual) fuera de su PATH
, entonces tiene que escribir ./localbinary
en lugar de solo localbinary
para ejecutar ese archivo.
Esta es mi conjetura. Cuando establezco/desinstalo CDPATH
, se rompe/abre el comando cd subdir
, y cd ./subdir
funciona en todos los casos para mí.
¿Cuál es su sistema operativo? ¿Tiene permisos de lectura en el directorio? No estoy seguro de qué decir, ya que nunca he visto esto antes. – Blender
donde reside la prueba? ¿Lo ejecutará desde el directorio principal de prueba? –
Ubuntu 10.10, sí, tengo permisos en el directorio – Abhishek