Mam skrypt, który używa sh
powłoki. W wierszu używającym source
polecenia pojawia się błąd. Wydaje się, że source
nie jest uwzględniony w mojej sh
powłoce.
Jeśli jawnie spróbuję uruchomić source
z powłoki, otrzymuję:
sh: 1: source: not found
Czy powinienem jakoś zainstalować „source”? Czy mam złą wersję sh
?
source
jest „złą wersją”.source: not found
oznacza, żesource
polecenie zostało poprawnie ocenione, ale plik, który powinien był odczytać, nie istnieje.source
ponieważ jest to funkcja powłoki. Nie można go zaimplementować jako polecenie zewnętrzne.Odpowiedzi:
/bin/sh
to zazwyczaj inna powłoka próbująca naśladować powłokę. Wiele dystrybucji używa/bin/bash
dlash
, obsługujesource
. Jednak na Ubuntu/bin/dash
jest używany, który nie obsługujesource
. Większość pocisków używa.
zamiastsource
. Jeśli nie możesz edytować skryptu, spróbuj zmienić powłokę, która go uruchamia.źródło
/bin/sh
zaproszeń/bin/dash
. Tradycyjnie/bin/sh
wywoływany/bin/bash
jest tryb zgodności z sh.SHELL := /bin/bash
na początku mojego pliku Makefile.W powłoce Bourne'a (sh) użyj rozszerzenia. polecenie, aby pobrać plik
źródło
source
, to nie jest ściślesh
.. ./filename
. W przeciwnym razie wystąpiłbymsh: 1: .: filename: not found
błąd podczas uruchamiania testów na Travis-CI.Wtedy będzie dobrze
źródło
dpkg-reconfigure
może nie być dostępny dla wszystkich użytkowników, szczególnie w systemach, które nie są oparte na Debianiesource: not found
błędy ze starymi klientami telnet po aktualizacji Debiana, dzięki.source
Wbudowane jest składnią Basha. Napisz to po prostu jako.
zamiast.na przykład
źródło
Ten problem występuje, ponieważ jenkins Execute Shell uruchamia skrypt za pośrednictwem swojego / bin / sh
W konsekwencji / bin / sh nie zna „źródła”
Wystarczy dodać poniższą linię na górze swojej powłoki Execute Shell w jenkins
źródło
source
Komenda jest wbudowany w niektórych muszli. Jeśli masz skrypt, powinien on określać, jakiej powłoki użyć w pierwszej linii, na przykład:źródło
Napotkałem ten błąd, gdy próbowałem wywołać polecenie źródła z powłoki #Jenkins.
source profile.txt
lubsource profile.properties
Zamiennikiem polecenia źródłowego jest użycie,
. ./profile.txt
lub. ./profile.properties
Uwaga: między kropkami (.) Jest spacja.
źródło
Znalazłem w gnu Makefile na Ubuntu, (gdzie / bin / sh -> bash)
Musiałem użyć. polecenie, a także określ skrypt docelowy z przedrostkiem ./ (patrz przykład poniżej)
źródło nie działało w tym przypadku, nie wiem dlaczego, skoro powinno wywoływać / bin / bash ..
Moja zmienna środowiskowa SHELL jest również ustawiona na / bin / bash
Zwróć uwagę, że ten przykład nie zawiera znaku tabulacji; musiał sformatować do wymiany stosu.
źródło
source to wbudowane polecenie bash, więc aby wykonać polecenie source, możesz zalogować się jako Root.
sudo -s source ./filename.sh
źródło
W Ubuntu, zamiast używać sh scriptname.sh do uruchomienia pliku, użyłem. scriptname.sh i zadziałało! Pierwsza linia mojego pliku zawiera:
#!/bin/bash
użyj tego polecenia, aby uruchomić skrypt
źródło
To może ci pomóc, otrzymałem ten błąd, ponieważ próbowałem ponownie załadować moją
.profile
komendą. .profile
i wystąpił błąd składniźródło
Powłoka Bourne'a (sh) używa PATH do zlokalizowania w
source <file>
. Jeśli plik, który próbujesz pozyskać, nie znajduje się w Twojej ścieżce, pojawi się komunikat o błędzie „nie znaleziono pliku”.Próbować:
źródło
sh: 1: source: not found
niefile not found