2016-07-11 7 views
1

Ich habe ein c-Programm geschrieben. Ich möchte das Programm weiterleiten und ich möchte es sinnvoll erscheinen lassen. Also statt ./a.out jedes Mal zu schreiben, möchte ich es changetext nennen. Um das zu erreichen, kompilierte ich mein Programm folgendermaßen: gcc -o changetext myprog.c. Nach meinem besten Wissen sollte dies die Verwendung von ./a.out und changetext ersetzen. Aber ich bekomme command not found. Ich bin neu in c und Unix-Umgebung. Jeder Vorschlag geschätzt.Wie führe ich mein Programm ohne ./a.out Befehl aus?

+5

Versuchen Sie './Changetext' stattdessen. –

+0

Und es funktioniert! Vielen Dank! –

+0

Wenn Sie '. /' Nicht schreiben wollen, legen Sie es in ein Verzeichnis, das sich in Ihrem $ PFAD befindet. – Barmar

Antwort

2

Wie ich in einem Kommentar sagte. entweder, können Sie einen Punkt Strich (./) vor der ausführbaren Datei gesetzt, um sie auszuführen

./changetext 

Oder setzen Sie in einem Verzeichnis in die in der Umgebungsvariable PATH verwiesen wird. Eine schöne Erklärung dieses Sicherheitsmerkmal ist hier zu finden (dank rubenvb):

http://www.linfo.org/dot_slash.html

Er sagt, dass dies mehr oder weniger mit dem gleichen Namen integrierten Befehle vom Benutzer geschriebenen Befehle zu unterscheiden. Ich bin jedoch nicht überzeugt. Die Shell könnte einfach vordefinierte Namen den vom Benutzer bereitgestellten Namen vorziehen und sowohl im aktuellen Verzeichnis als auch im PATH suchen.

Aber das ist der * nix Weg.

1

Um ein Programm wie Ihre changetext mit nur dem Befehl chanhetext zu kompilieren und auszuführen, müssen Sie die Binärdatei in ein Verzeichnis einfügen, das in Ihrer PATH-Umgebungsvariablen aufgeführt ist. Es wird empfohlen, Programme, die Sie selbst erstellt haben, im Verzeichnis ~/bin/ zu speichern. Der Befehl würden Sie verwenden, um dies zu erreichen, würde die folgende sein, vorausgesetzt, ~/bin/ bereits vorhanden ist:

gcc -o ~/bin/changetext myprog.c
Wenn es nicht vorhanden ist, können Sie es einfach erstellen, dann abmelden und in zurück

+1

Sie müssen sich nicht abmelden, Sie können einfach Ihren '$ PATH' aktualisieren (vorausgesetzt, Sie wissen, wie). –

Verwandte Themen