Você não deve adicionar o próprio script a $PATH
. Em vez disso, você deve adicionar o diretório que contém o script a $PATH
:
export PATH=$PATH:/opt/scripts
Eu escrevi um script de shell, mostro o script
myscript.sh
#!/bin/bash
ssh -t proxy@PROXY -p 22022 "ssh me@REMOATE_MACHINE -p 22022"
Eu coloquei o script em /opt/scripts/myscript.sh
e chmod u+x myscript.sh
. Depois disso, adicionei export PATH=$PATH:/opt/scripts/myscript.sh
em .bashrc
.
E, em seguida, source .bashrc
, mas quando digito myscript.sh
, o terminal retornou myscript.sh: command not found
e echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/opt/scripts/myscript.sh:/usr/lib/jvm/java-8-oracle/bin:/bin:/bin:/opt/hadoop-2.6.4/bin:/opt/hadoop-2.6.4/sbin:/opt/hive-2.0.0-bin/bin
/opt/scripts/myscript.sh
está no PATH
Como devo resolver o problema?
Você não deve adicionar o próprio script a $PATH
. Em vez disso, você deve adicionar o diretório que contém o script a $PATH
:
export PATH=$PATH:/opt/scripts
Não deve ser /opt/scripts/myscript.sh
. Deve ser /opt/scripts
. Ele está tratando /opt/scripts/myscript.sh
como um diretório e usando todos os arquivos nele, não em si. Isso pode ser conseguido pelos seguintes comandos;
PATH=$PATH:/opt/scripts
export PATH