In meiner .sh-Datei kann ich keine ant-, mv- oder cp-Befehle aufrufen, aber die gleichen Befehle, die auf terminal.below ausgeführt werden, sind mein Skript
sample.sh Datei
#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release
Pfad in der .bashrc-Datei hinzugefügt.
export PATH=$PATH:/usr/bin/
cp, mv, ant arbeiten nur unter terminal und nicht über scirpt.
android
/ant
Sind diese Binärdateien in / usr / bin?Antworten:
Da Ihr Skript ein Shell-Skript (
/bin/sh
) ist, werden IhrePATH
Eingaben in.bashrc
nicht so gelesen, wie dies für die interaktive Shellbash
(/bin/bash
) der Fall ist .Um Ihre
PATH
Einträge für/bin/sh
Skripte verfügbar zu machen, die von einem bestimmten Benutzer ausgeführt werden, fügen Sie denPATH
Eintrag der.profile
Datei in diesem Benutzerverzeichnis hinzu.Zusätzlich können Sie den vollständigen Pfad für jeden Ihrer Befehle im Skript hinzufügen:
Oder legen Sie die
PATH
Variable einschließlich aller$PATHS
am Anfang Ihres Skripts erforderlichen fest .quelle
PATH
an der richtigen Stelle statt.bashrc
. Das Ändern des Skripts in ein Bash-Skript macht keinen Unterschied: Wird.bashrc
nur von interaktiven Shells geladen.Hatte das gleiche Problem beim Ausführen einer Binärdatei, deren Pfad in bashrc festgelegt ist.
Das Problem wurde folgendermaßen gelöst:
Fügen Sie die Binärdatei hinzu oder fügen Sie einen Link zur Binärdatei in / usr / bin hinzu.
Dann überprüfen Sie mit
Sie können das Anmeldeformular bashrc entfernen.
quelle
Sie können eine einfache Sache tun, wenn Sie ein kleines Skript haben und Ihre Arbeit so schnell wie möglich beenden
Gehe auf die Befehlszeile und benutze den folgenden Befehl
Mit dem obigen Befehl wird die Ausgabe einschließlich des Pfads gedruckt. Verwenden Sie diesen Befehl direkt
quelle