Ich habe eine run.sh in einem Verzeichnis in Ubuntu Linux 12.04 LTS. Ich habe die Pfadvariable geändert, damit sie Binärdateien an anderer Stelle in der Verzeichnisstruktur „sehen“ kann. Aber ich erhalte immer noch die Meldung „Befehl nicht gefunden“, selbst wenn ich den vollständigen Pfad angebe. Ich habe nur grundlegende Linux-Kenntnisse. Was ist los? Warum kann es run.sh nicht sehen?
memsql@memsql-virtual-machine:~/voltdb/doc/tutorials/helloworld$ sudo /home/memsql/voltdb/doc/tutorials/helloworld/run.sh
sudo: /home/memsql/voltdb/doc/tutorials/helloworld/run.sh: command not found
memsql@memsql-virtual-machine:~/voltdb/doc/tutorials/helloworld$ ls
Client.class deployment.xml Insert.class log run.sh Select.java
Client.java helloworld.sql Insert.java README Select.class statement-plans
memsql@memsql-virtual-machine:~/voltdb/doc/tutorials/helloworld$ pwd
/home/memsql/voltdb/doc/tutorials/helloworld
Antwort1
Sie sollten es ausführbar machen chmod a+x run.sh
und es dann erneut versuchen.
Dadurch wird die Datei ausführbar.
Antwort2
Höchstwahrscheinlich liegt es daran, dass die Datei nicht ausführbar ist, wie bereits jemand anderes erwähnt hat. Manchmal liegt es aber auch an etwas anderem.
Wenn der Shebang ( #!/bin/sh
oder ein gleichwertiges) falsch ist, habe ich den Shell-Bericht gesehen file not found
oder command not found
obwohl esIstes gibt eine ausführbare Datei. Als ich es sah, handelte es sich um ein Perl-Skript, das #!/usr/local/bin/perl
sich perl
in /usr/bin befand.
Ich dachte nur, ich würde diese andere mögliche Ursache noch einbringen.