2013-02-15 6 views
8

Najwyraźniej nie mogę source skryptu, jeśli ten skrypt jest w bieżącym katalogu. Na przykład,nie można skryptu źródłowego w bieżącym katalogu

# source some/dir/script.sh 
Ok 

działa dobrze, ale jeśli jestem w tym samym katalogu co skrypt, to błędy się:

# cd some/dir 
# source script.sh 
-sh: source: script.sh: file not found 

Co daje? Czy to jedyny sposób na zmianę katalogu?

Używam bash v4.2.10 na Angstrom Linux, jeśli jest to istotne.

Odpowiedz

12

Cytując stronę źródło Man:

źródło nazwa_pliku [argumenty]

....

Jeśli nazwa pliku nie zawiera ukośnika, sygn nazwy są używane w PATH, aby znaleźć katalog zawierający nazwę pliku- .

Więc ... source próbuje szukać script.sh w folderach zawartych w PATH.

Jeśli chcesz pozyskać plik w bieżącym folderze używać

source ./script.sh 
1

Użyj bezwzględnej ścieżki - source /root/path/to/some/dir/script.sh - powinien cię posortować.