Bash: arquivos de origem sem fullpath?

2

se eu fornecer o arquivo de script sem a definição de pré-caminho, isso não funcionará. O que está acontecendo abaixo? Eu tenho uma função go1 no arquivo simplesmente imprimindo $ PWD.

$ bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)
Copyright (C) 2007 Free Software Foundation, Inc.
$ source functions.sh
$ go1
-bash: go1: command not found
$ source ./functions.sh
$ go1
Current dir is /Users/mert/temp
$
    
por mert inan 11.01.2014 / 13:11

1 resposta

4

Acho que você pode ter um arquivo chamado functions.sh em um dos diretórios no seu $PATH .

  • source functions.sh executa o caminho em seu caminho, portanto, go1 não está definido
  • source ./functions.sh executa o que você espera e o go1 é definido.

Este pequeno script pode ajudar.

P='env | egrep -e'^PATH' | sed -e 's/^PATH=//' '

IFS=:
for i in $P
do
 if [[ -f $i/functions.sh ]] 
 then 
   ls -l $i/functions.sh
 fi
done
    
por 11.01.2014 / 13:45