cp: opción no válida - 'h'

cp: opción no válida - 'h'

Estoy usando Ubuntu y estoy intentando instalarestePaquete Python a través de Anaconda. Seguí los pasos tal como están en el enlace y cuando escribo cp -Ri $THIS_DIR/PackageFiles/Scripts $CMDIR(línea 59 en adelante), aparece:

cp: invalid option -- 'h'

¿Cuál es el motivo y cómo puedo corregirlo?

EDITAR: Las salidas de echo $THIS_DIRy echo $CMDIRson dirname -bashy /home/myusername/cellmodeller, respectivamente.

Respuesta1

Un par de cosas: si THIS_DIRcontiene dirname -bash, cp -Ri $THIS_DIR/...se expande al equivalente de cp -Ri dirname -bash/...(debido a la división de palabras), es decir, cpobtiene dirnamey -bash/...como argumentos distintos. Ese segundo comienza con un guión, por lo que intenta interpretar las letras que contiene como opciones. GNU cp no tiene -hcomo opción, por lo que da un error.

Podría evitar la división con comillas, pero eso no significa mucho ya que probablemente no tenga un directorio llamado dirname -bashcon espacio y todo.

Mirando el guión, THIS_DIRse establece a través de

THIS_DIR="`dirname $0`"

tenga en cuenta las comillas invertidas, inician una sustitución de comando y ejecutan el dirnamecomando. Si los elimina, dirname ...se asigna una cadena literal.

Por otra parte, $0es el nombre del shell o script en ejecución. El script probablemente usa ese comando para averiguar dónde reside el script, por ejemplo, la ruta /foo/barsi ejecutó /foo/bar/scriptname.sh. Pero en un shell interactivo iniciado normalmente $0probablemente solo contenga bash, o -bashsi es un shell de inicio de sesión.

Como dijo cutrightjm en los comentarios, ese script está destinado a ejecutarse como un script, no como comandos copiados individualmente en la terminal. (Aún podría usar comillas en torno a las expansiones).

Por supuesto, puede cambiar la asignación THIS_DIRen el script o modificarla antes de ejecutarla.

información relacionada