PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : sh



LoF-Speedy
05-04-2002, 16:15
hy

bin relativ neu unter linux, und hab da mal ne frage

es gibt reichlich scripte, welche ich mit sh scriptname ausführen kann.
kann man dies irgendwie automatisch einstellen? denn teilweise (z.b. bei wineinstall) wird innerhalb solch eines scripts ein anderes aufgerufen, weöches dann auch erst funzt, wenn ihc im script dieses sh einfüge.

kann ich das irgendwie umgehen?

sticky bit
05-04-2002, 17:50
1. Shebang anpassen / Erstellen
Die Shebang ist die erste Zeile die in etwa so aussieht: #!/bin/bash
Wie du siehst kommt nach dem Nummernkreuz und dem Ausrufezeichen ein Pfad zur ausführbaren Datei der Sehll di das ganze interpretieren soll. Normalerweise tuts da /bin/sh aber manchmal braucht man auch ne andere Shell.

2. Datei ausführbar machen
Damit die Datei ausgeführt wird ohne ein vorangestelltes sh oder . muss sie ausführbar gemacht werden das geschieht mit dem Befehl chmod. Ein Beispiel:
chmod 755 shellscript
Das würde der Datei 'shellscript' jetzt für den Besitzer Ausführungs-, Lese- und Schreibrecht geben, der Gruppe und der Welt Lese- und Ausführungsrechte. Wenn du mehr über chmod wissen willst: man chmod

LoF-Speedy
07-04-2002, 21:30
danke :-)

Nighthawk
08-04-2002, 10:23
Original geschrieben von sticky bit
2. Datei ausführbar machen
Damit die Datei ausgeführt wird ohne ein vorangestelltes sh oder . muss sie ausführbar gemacht werden das geschieht mit dem Befehl chmod

Wenn die Datei nicht ausführbar ist kann man sie sowieso (logischerweise) nicht ausführen. Das sh oder ./ (Path) muss man aber immer voranstellen, auch wenn das executable Flag gesetzt ist. Außer die Datei liegt in /bin, /sbin usw. da wird sie automatisch ausgeführt.

sticky bit
08-04-2002, 17:06
Original geschrieben von Nighthawk


Wenn die Datei nicht ausführbar ist kann man sie sowieso (logischerweise) nicht ausführen. Das sh oder ./ (Path) muss man aber immer voranstellen, auch wenn das executable Flag gesetzt ist. Außer die Datei liegt in /bin, /sbin usw. da wird sie automatisch ausgeführt. Jupp, wenn sie nicht "x" ist, dann wird sie nicht ausgeführt, deshalb hab ichs ja geschrieben, weil er es vielleicht nicht wusste und es daran scheiterte...

Oder sie liegt in einem anderen Verzeichnnis das im PATH ist oder auch im aktuellen Arbeiteverzeichnis, stimmt zwar, dass man bei manchen Systemen besonders wenn man root ist man dann './executable' schreiben muss, aber bei mir gehts so oder so und sicher auch bei einigen anderen...

Nighthawk
09-04-2002, 09:35
Ich glaub wir reden aneinander vorbei... :rolleyes:
Naja, hauptsache et funzt :D