Estou usando o Ubuntu e estou tentando instalaressePacote Python via Anaconda. Segui os passos conforme estão no link, e quando digito cp -Ri $THIS_DIR/PackageFiles/Scripts $CMDIR
(linha 59 em diante), obtenho:
cp: invalid option -- 'h'
Qual é o motivo e como posso corrigi-lo?
EDIT: As saídas de echo $THIS_DIR
e echo $CMDIR
são dirname -bash
e /home/myusername/cellmodeller
, respectivamente.
Responder1
Algumas coisas: if THIS_DIR
contains dirname -bash
, cp -Ri $THIS_DIR/...
expande para o equivalente a cp -Ri dirname -bash/...
(devido à divisão de palavras), ou seja, cp
obtém dirname
e -bash/...
como argumentos distintos. Esse segundo começa com um travessão, então tenta interpretar as letras como opções. GNU cp não tem -h
como opção, então dá um erro.
Você poderia evitar a divisão com aspas, mas isso não significa muito, pois provavelmente você não tem um diretório chamado dirname -bash
com espaço e tudo.
Olhando para o script, THIS_DIR
é definido via
THIS_DIR="`dirname $0`"
observe os crases, eles iniciam uma substituição de comando, executando o dirname
comando. Se você removê-los, uma sequência literal dirname ...
será atribuída.
Então, novamente, $0
é o nome do shell ou script em execução. O script provavelmente usa esse comando para descobrir onde o script reside, por exemplo, o caminho /foo/bar
se você executou o arquivo /foo/bar/scriptname.sh
. Mas em um shell interativo iniciado normalmente $0
provavelmente contém apenas bash
, ou -bash
se for um shell de login.
Como cutrightjm disse nos comentários, esse script deve ser executado como um script, não como comandos copiados individualmente para o terminal. (Ainda poderia usar aspas em torno das expansões.)
É claro que você pode alterar a atribuição THIS_DIR
no script ou modificá-la antes de executar.