So führen Sie ein Shell-Skript aus einem beliebigen Verzeichnis aus

So führen Sie ein Shell-Skript aus einem beliebigen Verzeichnis aus

Ich habe ein einfaches Skript mit der Erweiterung .shin meinem Home-Verzeichnis geschrieben, das ich direkt in meinem Home-Verzeichnis ausführen kann, aber ich möchte das Skript von jedem Verzeichnis aus ausführen, in dem ich mich befinde. Was soll ich tun?

Antwort1

Interaktiv können Sie Ihre Skripte immer durch Eingabe ~/yourscript.shin die Befehlszeile ausführen. Dies ist jedoch sehr einschränkend, insbesondere wenn Sie weitere Skripte schreiben möchten, die die bereits geschriebenen Skripte aufrufen.

Ein integrierterer und flexiblerer Ansatz besteht darin, alle Ihre Skripte in einem Verzeichnis abzulegen und dieses Verzeichnis zu Ihrer PATHUmgebungsvariable hinzuzufügen.

Anschließend können Sie eingeben yourscript.sh. Unabhängig davon, in welchem ​​Verzeichnis Sie sich befinden, findet die Shell Ihr Skript und führt es aus.

Normalerweise wird es folgendermaßen gemacht:

  1. Erstellen Sie ein binVerzeichnis unter Ihrem Home-Verzeichnis und fügen Sie mvIhre Skripte dort ein.
  2. Ändern Sie alle Skripte in ausführbare Dateien ( chmod +x).
  3. Stellen Sie sicher, dass Ihre PATHUmgebungsvariable Ihr Verzeichnis enthält . Auf einigen Systemen wird Ihr Verzeichnis $HOME/binstandardmäßig automatisch hinzugefügt. Überprüfen Sie es daher vor der Änderung.~/.profile$HOME/binPATH~/.profile

Lassen Sie mich dies anhand eines Skripts veranschaulichen:

mkdir ~/bin
mv ~/*.sh ~/bin
chmod +x ~/bin/*
if ! grep 'PATH=.*HOME/bin' ~/.profile
then
    echo 'export PATH="$HOME/bin:$PATH"' >> ~/.profile
fi
. ~/.profile
echo "$PATH"      # you should see your bin directory
cd /tmp           # change to another random directory
type myscript.sh  # see if the shell finds your scripts

Wenn Sie Ihr binVerzeichnis in Ihrem sehen PATH, empfiehlt es sich, sich abzumelden und erneut anzumelden, in ein anderes Verzeichnis zu wechseln und die Ausführung type yourscript.sherneut durchzuführen, um sicherzustellen, dass alles richtig eingerichtet ist.

verwandte Informationen