2012-01-19 10 views
6

Próbowałem dwa następujące sposoby źródłowym pliku właściwościnie stanie pozyskać plik właściwości w skrypcie powłoki

#!/bin/sh 
. import.properties 
echo $USER_ID 
echo $INPUT_FILE 

Mówi:

./test.sh[3]: import.properties: not found 

kiedy spróbował wykorzystać source import.properties dał wiadomość jako :

./test.sh[3]: source: not found. 

Jestem bardzo nowy w skryptach i env. Proszę dać mi znać, czego tu brakuje?

Odpowiedz

12

Do odnalezienia za pomocą polecenia dot . plik musi być czytelny (niekoniecznie wykonywany) i na ścieżce PATH (i aby był bezpieczny, musi zawierać skrypt powłoki).

Jeśli plik znajduje się w bieżącym katalogu i . (katalogu, a nie polecenie) nie jest na PATH, można użyć:

. ./import.properties 

W przeciwnym razie trzeba określić bezwzględną nazwę plik lub względna nazwa pliku lub przenieś plik do wygodnego katalogu na Twojej zmiennej PATH.

Alternatywna notacja, source import.properties, nie działa, ponieważ użytkownik nie znajduje się w powłoce języka C i nie używa Bash. Polecenie source w powłoce C jest analogiem polecenia dot w powłoce Bourne'a. Bash zezwala na to jako synonim dla polecenia dot (lub polecenia dot jako synonimu źródła). Ponieważ nie znaleziono source, możemy spokojnie założyć, że twoja powłoka nie obsługuje go jako wbudowanego.

+0

Jeśli chcesz uruchomić ten skrypt z innego katalogu, powinieneś użyć '. "$ (dirname -" $ 0 ")/import.properties" '. – l0b0

+0

To może ale nie musi działać; klasycznie, powłoki Bourne'a i Korn'a nie dodają nazwy katalogu do nazwy polecenia, ale 'bash' wydaje się to robić. –

Powiązane problemy