GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich ein .sh-Skript von einem beliebigen Pfad in einem Terminal aus?

Sie müssen das Skript in ein Verzeichnis kopieren oder verlinken, das sich auf dem $PATH befindet. Normalerweise /usr/bin und /usr/local/bin/ befinden sich auf dem Pfad, also sind dies gute Orte, um das Skript zu verlinken oder dorthin zu kopieren.

ln -s /path/to/your/script /usr/local/bin

Wenn Sie nicht root sind, müssen Sie entweder sudo diesen Befehl oder führen Sie ihn als Root-Benutzer aus.


Eine Möglichkeit besteht darin, einfach den Pfad zum Skript einzugeben:

~/Desktop/script

Das funktioniert gut, wird aber etwas unhandlich.

Dafür steht die PATH Umgebungsvariable ist für. Und es ist was $HOME/bin ist für.

  1. Erstellen Sie sich ein Verzeichnis $HOME/bin . Legen Sie alle Ihre ausführbaren Skripte darin ab (machen Sie sie mit chmod +x script ausführbar wenn nötig). Auf diese Weise gibt es einen Ort, an dem Sie nach den Skripts suchen können, die Sie ausführen möchten.
  2. Fügen Sie $HOME/bin hinzu zu Ihrem PATH . Ich habe meine nach vorne gesetzt:PATH="$HOME/bin:$PATH , aber Sie können es auch hinten anbringen, wenn Sie möchten.
  3. Aktualisieren Sie Ihren .profile oder .bash_profile (oder möglicherweise .bashrc )-Datei zum Festlegen von PATH . Hüten Sie sich jedoch vor einem ständig wachsenden PATH.

Wie tripleee angemerkt hat, sobald der Befehl in einem Verzeichnis auf PATH installiert ist , geben Sie nicht mehr ./script ein , sondern nur script . Das ist genau so, als würden Sie ls eingeben und nicht /bin/ls usw. Sobald das Programm in einem Verzeichnis auf Ihrem PATH installiert ist , ist es (für viele Zwecke) nicht von einem vom System bereitgestellten Befehl zu unterscheiden.

Ich habe ungefähr 500 Skripte und Programme in meinem $HOME/bin Verzeichnis.

Beachten Sie, dass hierfür keine besonderen Berechtigungen erforderlich sind. Wenn Sie Administratorzugriff auf Ihren Computer haben und der Meinung sind, dass andere Benutzer Ihre Befehle nützlich finden könnten, können Sie die Skripte/Programme in einem der vom System bereitgestellten Verzeichnisse auf Ihrem PATH installieren . Es ist jedoch normalerweise am besten, keine Programme zu folgenden hinzuzufügen:

  • /bin
  • /usr/bin
  • /sbin
  • /usr/sbin

Dort steht oft/normalerweise /usr/local/bin Dies ist ein geeigneter Ort für häufig verwendete Befehle, die nicht vom System bereitgestellt werden.

Es wäre besser, chmod a+x,go-w script zu verwenden; Ihre Skripte sollten nicht von anderen Personen beschreibbar sein. Sie könnten sogar einfach chmod 555 script verwenden oder chmod 755 script . Ich neige dazu, meine Skripte nicht beschreibbar zu halten. Auf diese Weise muss ich einen formalen Änderungsprozess mit dem Versionskontrollsystem durchlaufen. Das bedeutet, dass die Gefahr unkontrollierter Änderungen geringer ist.


Linux
  1. Linux – Wie führe ich einen Bootloader von Linux aus?

  2. Wie man ein Skript ausführt??

  3. So führen Sie Python-Skripte von der Shell aus

  4. Wie führe ich ein Shell-Skript auf einer Unix-Konsole oder einem Mac-Terminal aus?

  5. Wie kann ich eine Funktion von einem Skript in der Befehlszeile ausführen?

So führen Sie ein Bash-Skript aus {7 Methoden}

So führen Sie ein Python-Skript in PHP aus

So führen Sie ein Bash-Skript aus

Wie installiere ich ein Skript, das überall von der Befehlszeile aus ausgeführt werden kann?

So beenden Sie SSH von Vagrant im Terminal

Wie führe ich ein Bash-Skript über einen absoluten Pfad aus?