ich für diese senario gegoogelt, aber es ist überschwemmt mit den Ergebnissen, wie man einen relativen Pfad in einen absoluten zu verwandeln (die funktionieren würde, aber ich fühle es ist ein einfacher Weg)Ausführen relativer Pfad ausführbar in Bash-Skript
ich habe folgendes Szenario:
$ls ../
executable1 dir1
$
$ls
shellscript1
$
$cat ./shellscript1
#!/bin/bash
#Run executable1, which I know is one dir up towards root
../executable1 arg1 arg2 arg3 etc
exit 0
#----End Of Script----
$
$./shellscript1
./shellscript1: line 3: ../executable1: No such file or directory
Im Grunde muss ich mit einem relativen Pfad von einem bash-Skript eine ausführbare Datei aufrufen. Es funktioniert gut in einer Bash-Shell, aber in einem Skript kann es den Pfad nicht auflösen. Ich habe überprüft, dass das Arbeitsverzeichnis das ist, was ich erwarte (z. B. dir1). Gibt es einige call
oder exec
wie Befehl brauche ich davor? Ich habe versucht, sh ../executable1
, aber natürlich Bash bimps bei der ausführbaren Datei.
Weitere Informationen sind erforderlich. Wenn du das testest, wo bist du? Geben Sie pwd ein. Die einzige Information, die ich nach der Katze nicht sehe, ist deine ausführbare Datei1. Versuch das. Es sollte nicht funktionieren. – octopusgrabbus
Es gibt einige Probleme mit Ihrem Shell-Befehlsverlauf: ls gab Shellscript1 zurück, dann Sie cat Shellscript, das sollte nicht da sein, da ls Sie nicht zeigte ... und Sie haben das Skript. Du hast dann ./shellscript (das ist nicht da) aufgerufen. Es hat ./shellscript1: line 3 gedruckt ... etwas stimmt nicht mit Ihrer Anfrage. Es ist sicher 100%, dass Sie bei Dateinamen einen Syntaxfehler haben. Überprüfe, ob etwas vorhanden ist, gehe nicht davon aus, dass es da ist. – dAm2K
Stellen Sie sicher, dass keines davon symbolisch ist. – pizza