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_DIR
y echo $CMDIR
son dirname -bash
y /home/myusername/cellmodeller
, respectivamente.
Respuesta1
Un par de cosas: si THIS_DIR
contiene dirname -bash
, cp -Ri $THIS_DIR/...
se expande al equivalente de cp -Ri dirname -bash/...
(debido a la división de palabras), es decir, cp
obtiene dirname
y -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 -h
como 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 -bash
con espacio y todo.
Mirando el guión, THIS_DIR
se establece a través de
THIS_DIR="`dirname $0`"
tenga en cuenta las comillas invertidas, inician una sustitución de comando y ejecutan el dirname
comando. Si los elimina, dirname ...
se asigna una cadena literal.
Por otra parte, $0
es 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/bar
si ejecutó /foo/bar/scriptname.sh
. Pero en un shell interactivo iniciado normalmente $0
probablemente solo contenga bash
, o -bash
si 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_DIR
en el script o modificarla antes de ejecutarla.