W moim pliku .sh nie mogę wywoływać komend ant, mv ani cp, ale te same komendy są wykonywane na terminalu. Poniżej mój skrypt
plik sample.sh
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
ścieżka dodana w pliku .bashrc.
export PATH=$PATH:/usr/bin/
cp, mv, ant działają tylko pod terminalem, nie poprzez scirpt.
android
/ant
, czy te pliki binarne znajdują się w katalogu / usr / bin?Odpowiedzi:
Ponieważ skrypt jest skryptem powłoki (
/bin/sh
),PATH
wpisy w nim.bashrc
nie będą odczytywane tak, jak w przypadku powłoki interaktywnejbash
(/bin/bash
).Aby udostępnić
PATH
wpisy/bin/sh
skryptom uruchamianym przez określonego użytkownika, dodajPATH
wpis do.profile
pliku w katalogu osobistym tego użytkownika.Dodatkowo możesz dodać pełną ścieżkę do każdego polecenia w skrypcie:
Lub ustaw
PATH
zmienną zawierającą wszystkie wymagane$PATHS
na początku skryptu.źródło
PATH
w odpowiednim miejscu zamiast.bashrc
. Zmiana skryptu na skrypt bash nie robi żadnej różnicy:.bashrc
jest ładowany tylko przez interaktywne powłoki.Miał ten sam problem podczas uruchamiania pliku binarnego, którego ścieżka jest ustawiona w bashrc.
Rozwiązano problem, wykonując następujące czynności:
Dodaj plik binarny lub dodaj link do pliku binarnego w / usr / bin.
Następnie sprawdź za pomocą
Możesz usunąć formularz zgłoszeniowy bashrc.
źródło
możesz zrobić jedną prostą rzecz, jeśli masz mały skrypt i zakończyć pracę jak najszybciej
przejdź do wiersza poleceń użyj poniżej polecenia
powyższe polecenie wyświetli dane wyjściowe, w tym ścieżkę, użyj polecenia bezpośrednio
źródło