Use este comando: type assemble.sh
Funciona em uma variedade de shells e mostra apenas o primeiro resultado.
Eu sou (de alguma forma) capaz de executar um script:
$ assemble.sh file
... [output]
Mas which
não consegue encontrar:
$ which assemble.sh
which: no assemble.sh in (/s/std/bin:/usr/afsws/bin:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/ucb:/bin:/usr/bin:/usr/stat/bin:/usr/X11R6/bin:.
Estou usando o bash.
Ou divida o caminho e use-o em find - a primeira correspondência deve ser a solução
find ${PATH//:/ } -maxdepth 1 -name assemble.sh -print -quit
type
é claro mais fácil.
Você pode estar usando o bash, mas a sintaxe da saída which
mostra que você usa o antigo which
escrito em csh. O PATH aparece entre parênteses e os diretórios no PATH têm entradas como /opt/SUNWspro/bin
e /usr/ccs/bin
, que só fazem sentido no Solaris. Isso é consistente: o Solaris usou o csh which
.
Aqui está o meu palpite: você tem um PATH para o bash e outro para o csh. Isso pode ser um problema no sistema. Pelo que me lembro, o Solaris mantém arquivos / etc / profile e / etc / cshrc para configuração de PATH em todo o sistema. Esses dois arquivos de inicialização podem definir diferentes variáveis PATH para diferentes shells. Faça "echo $ PATH" no bash e veja se ele concorda com o que o comando which
imprime como uma string PATH.
command -v assemble.sh
Informação
-v print a description of COMMAND similar to the 'type' builtin
Você pode usar locate assemble.sh
para encontrar o local do arquivo.