Ich habe ein Skript:
#!/bin/bash
echo "$(dirname $(readlink -e $1))/$(basename $1)"
das sitzt hier: /home/myuser/bin/abspath.sh
das hat Ausführungsberechtigungen.
Wenn ich renne, echo $PATH
bekomme ich folgendes:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/myuser/bin
Ich möchte in der Lage sein, aus jedem Verzeichnis abspath <some_path_here>
mein Skript aufzurufen. Ich benutze Bash, was mache ich falsch?
linux
shell
shell-scripting
Gepard
quelle
quelle
cd $HOME/bin ; ln -s abspath.sh abspath
. Auf diese Weise können Sie die richtige Erweiterung für das Skript beibehalten und ein Tool nach Ihren Wünschen benennen. (Sie könnten in Zukunft Ihr Shell-Skript durch ein Python-Skript ersetzen, zum Beispiel ...)Dieser Code ist klein genug, dass ich ihn als Shell-Funktion codieren würde:
Und ja, Sie wollen all diese Zitate.
quelle
Legen Sie einen Alias fest, indem Sie Ihren Befehl in die .bashrc-Datei einfügen.
Und vergessen Sie nicht, die Datei zu beschaffen.
quelle
Ich würde Ihr Bash-Skript umbenennen,
abspath
um es dann in dasbin
Verzeichnis zu verschieben. Dann können Sieabspath
von überall aus anrufenquelle
Eine dritte Option besteht darin, einen Alias namens abspath zu erstellen, der auf Ihr Skript abspath.sh verweist.
quelle