shell script (linux server), datei ohne "./" ausführen
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
ausdruck
code
datei
ergebnis
export
frage
hilfe
http
kopieren
kunde
machen
oleander
ordner
page
pfad
programm
standard
url
zeile
ziel
-
Ich bin totaler Laie in shellscript .
Ich habe auf einem linux-server (1&1) ein Programm (pdftohtml) das ein anderes Programm (ghostscript) aufruft.
Allerdings wird das Programm ohne das "./" -davor aufgerufen.
Also statt ./gs wird gs aufgerufen.
Was dazu führt das ich immer die Meldung "sh: gs: command not found" bekomme.
Kann ich irgendwie bewirken das gs aufgerufen wird?
Mein Ansatz war export PATH=$PATH:. auszuführen (mit Punkt am Ende).
Allerdings wird die Variable $PATH dadurch nicht verändert, ich vermute das ist ein schutzmechanismus von 1&1 .
Tja ich fürchte die Frage ist viel zu Speziel als das sie jemand beantworten kann, bin also über jede kleinste Idee oder verständnissfrage Glücklich.
Ach ja: Ziel der ganzen Aktion ist es pdf-Dateien in HTML-Dateien SERVERSEITIG umzuwandeln, was mit pdftohtml und ghostscript (theoretisch) geht. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hallo simuliertes,
wenn du möchtest dass deine hinzugefügten Programme ohne ./ aufgerufen werden können, dann pack sie doch am besten in einen eigenen Ordner (z.B. bin/) und füg diesen dann zur PATH-Variable hinzu. Oder spricht da was dagegen?
gruß, djfun -
also erstmal: ist es so schwer, ein ./ vor einen Programmaufruf zu setzen?
2. dein Script schreibt auch den aktuellen $PATH wieder auf $PATH, also hat er schon was gemacht:
3. ja, das ist ein schutzmechanismus des Rechners vor dem User(ugs. DAU)
du hast nun folgende Möglichkeiten:
du machst folgenden Befehl nach jedem Neustart:
PATH=${PATH}:${PWD}
oder du schreibst den Pfad dieses Programms in die .Bashrc in deinem profilpfad
PATH=${PATH}:/wasweissich/irgendwo/ziel/
du bekommst ja eine Standard-PATH-Variable, aber über die bashrc, wenn du die bash nutzt, kannst du das erweitern... ebenso kannst du das für andere Shells machen
Die Frage ist nciht wirklich Speziell, das sind Basics^^
@djfun: nein, sowas macht man nicht!!! man lässt als ehrbarer Linux-User die /bin mit den standards belegt, weil sonst noch andere User auf dieses Programm zugreifen können... wenn man die rechte nciht anders gesetzt hat... wird aber unübersichtlich...
Beitrag zuletzt geändert: 12.3.2010 11:17:17 von sebulon -
sebulon schrieb:
@djfun: nein, sowas macht man nicht!!! man lässt als ehrbarer Linux-User die /bin mit den standards belegt, weil sonst noch andere User auf dieses Programm zugreifen können... wenn man die rechte nciht anders gesetzt hat... wird aber unübersichtlich...
hey sebulon,
ich meinte im übrigen nicht den /bin/-ordner sondern einen eigenen Unterrordner von seinem Home-Ordner, also ~/bin/ (kann natürlich auch anders heißen)..
ach ja: http://www.linfo.org/dot_slash.html
Beitrag zuletzt geändert: 12.3.2010 11:08:31 von djfun -
Hallo,
der ~/bin Ordner ist inzwischen übrigens in einigen Distributionen, wohl nicht nur Debianbased, standardmäßig in der PATH variable eingetragen.
$ echo $PATH /home_DIR/bin:[...]
lg
Oleander
Beitrag zuletzt geändert: 12.3.2010 11:21:59 von olearose -
sebulon schrieb:
oder du schreibst den Pfad dieses Programms in die .Bashrc in deinem profilpfad
PATH=${PATH}:/wasweissich/irgendwo/ziel/
Das scheint mir die Lösung mit aussicht auf den meisten Erfolg zu sein.
Frage: Muß die .Bashrc in einem bestimmten ordner sein? Oder reicht es wenn ich die im selben Ordner wie das Programm anlege?
olearose schrieb: Hallo,
der ~/bin Ordner ist inzwischen übrigens in einigen Distributionen, wohl nicht nur Debianbased, standardmäßig in der PATH variable eingetragen.
$ echo $PATH /home_DIR/bin:[...]
lg
Oleander
djfun schrieb: hallo simuliertes,
wenn du möchtest dass deine hinzugefügten Programme ohne ./ aufgerufen werden können, dann pack sie doch am besten in einen eigenen Ordner (z.B. bin/) und füg diesen dann zur PATH-Variable hinzu. Oder spricht da was dagegen?
gruß, djfun
olearose & djfun das geht leider nicht:
$ export PATH=/homepages/13/d301722059/htdocs/wsb5531715001/tst/ghostscript-8.01/bin $ echo $PATH /bin:/usr/bin
oder
$ export PATH=$PATH:/. $ echo $PATH /bin:/usr/bin
Zeile 1-hier füge ich einen neuen PATH hinzu
Zeile 2-hier frage ich PATH ab
Zeile 3-das Ergebnis ist, es hat sich nicht geändert
Oder habe ich da irgend etwas Falsch gemacht/Falsch verstanden und die Lösung ist viel einfacher?
Hier nochmal die Fehlermeldung wenn ich pdftohtml aufrufe :
./pdftohtml -c t.pdf Page-1 Page-2 Page-3 Page-4 Page-5 Page-6 Page-7 sh: gs: command not found Error: Failed to launch Ghostscript!
Wenn ich allerdings gs Manuell aufrufe :
./gs
..funktioniert gs(ghostscript)
Beitrag zuletzt geändert: 12.3.2010 12:54:10 von simuliertes -
sebulon schrieb:
gib mal bitte den Pfad zur ausführbaren Datei an...
dann bauste ich dir einen Path-Ausdruck, den du 1 zu 1 kopieren kannst^^
denn durch deinen export hast du die anderen Paths beseitigt...
bitte:
$ pwd /homepages/13/d301722059/htdocs/wsb5531715001/tst/ghostscript-8.01/bin
danke :)
Beitrag zuletzt geändert: 12.3.2010 13:57:52 von simuliertes -
sebulon schrieb:
export PATH=${PATH}:/homepages/13/d301722059/htdocs/wsb5531715001/tst/ghostscript-8.01
die Datei packst du nun in die .bashrc in deinen Homeordner und machst einen logout und loggst dich wieder ein... beim login lädt er den Klumpatsch und es läuft^^
öhm, wieder eine Blöde Frage...
Welcher Ordner ist mein homeordner?
Laut 1&1 (siehe hier) finde ich den raus indem ich eine php-datei mit diesem Befehl erstelle:
<?php echo $_SERVER['DOCUMENT_ROOT']; ?>
Ergebnis:
/kunden/homepages/13/d301722059/htdocs/wsb5531715001
Also Muss die Datei .bashrc dort erstellt werden?
ist der Pfad immer relativ zur Position der .bashrc?
Es gibt nirgends eine .bashrc, dazu habe ich das hier gefunden, der scheint auch 1&1-Kunde zu sein...
Sorry für so blöde fragen, das ist alles komplett neu für mich :(
Bin weiterhin für jede Hilfe dankbar
-
Hallo,
sicher dass dir ein root Server zusagt?
Mir scheint als würdest du über keinerlei Vorwissen verfügen!
~ == home verzeichnis
lg
Oleander -
Gib einfach
vi ~/.bashrc
ein um die .bashrc zu bearbeiten.
Hilfe zu vi gibts über man vi oder hier!
LG cookies
Beitrag zuletzt geändert: 12.3.2010 15:39:53 von cookies -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage