Scipt wie erin programm ausführen

F

fsking

Eroberer
[erledigt]Script wie ein Programm ausführen

Hi,

ich meine mal wo gelesen zu haben, das man ein Script wie ein Programm ausführen kann, wenn man es nach /usr oder so packt.
weiß aber leider nicht mehr ganu, wie das ging, jemand von euch ne ahnung, wie ich das anstellen könnte?

das script sollte dann per eingabe des namens ein einem terminal starten!

lg,
fsking
 
Zuletzt bearbeitet:
Genaugenommen muss es nach $PATH verschoben werden, welche Pfade das sind, sagt Dir

Code:
$PATH

Je nachdem, um was für ein Skript es sich handelt, bieten sich unterschiedliche Pfade an. Ich packe sowas meistens nach /usr/local/bin.

/usr/local – distributionsunabhängige lokale Hierarchie. Hier kann und soll die lokale Systemadministration Programme und Daten ablegen, die von der entsprechenden Distribution des jeweiligen Systems unabhängig installiert worden sind, wie etwa selbstkompilierte oder unabhängig von der Distribution heruntergeladene Programme und Dateien. Den Installationsmechanismen der betreffenden Distribution ist es ausdrücklich untersagt, diese Verzeichnisstruktur zu berühren. Die Gestaltung der internen Struktur von /usr/local obliegt der lokalen Systemadministration und ist vom FHS nicht vorgegeben.

Quelle: Wikipedia
 
@gropuiskalle: ersteinmal vielen dank für die antwort.

wenn ich nun aber
Code:
$PATH
in eine Terminal eingebe, erhalkte ich folgende Meldung:
Code:
bash: /bin:/usr/bin:/sbin:/usr/sbin:/usr/share/eclipse:/opt/java/bin:/opt/java/jre/bin:/opt/kde/bin:/usr/bin/perlbin/site:/usr/bin/perlbin/vendor:/usr/bin/perlbin/core:/opt/qt/bin: Datei oder Verzeichnis nicht gefunden
nun weiß ich nicht genau, was ich damit anfangen soll!

hab das script man testweise nach /usr/local/bin gepackt, da tut sich aber nicht, die bash sagt mir dann nur, das die Datei oder das Verzeichnis nicht gefunden wurde!

lg,
Fabi
 
Es heißt ja eigentlich auch
Code:
echo $PATH
Ansonsten will der das ausführen was in der Variable steht..

Packs in einen der dort durch Doppelpunkt getrennten Pfade und dann solltest du es ohne kompletten Pfad ausführen lassen können.
(Respektive auch ohne diese "./Schreibweise")
 
hab das script man testweise nach /usr/local/bin gepackt, da tut sich aber nicht, die bash sagt mir dann nur, das die Datei oder das Verzeichnis nicht gefunden wurde!

/usr/local/bin ist ja laut Deiner Ausgabe auch noch nicht in Deinem $PATH - nur in den Ausgegebenen Verzeichnissen wird nach den Befehlen gesucht (die $PATH-Pfade unterscheiden sich übrigens je nach user, d.h. bei root sieht $PATH wiederum anders aus). Deshalb (wie gesagt als jeweiliger user):

Code:
export PATH=$PATH:/usr/local/bin

Das Skript selbst kannst Du nennen, wie Du Du es aufrufen willst, durch die shebang wird es als Shellskript erkannt (Du kannst also 'skript.sh' auch einfach zu 'skript' umbenenennen).

Edit:

Gott_in_schwarz schrieb:
Es heißt ja eigentlich auch

Code:
echo $PATH

Kleiner Schnitzer, spielt hier aber wohl weniger eine Rolle. Was fsking in $PATH zu stehen hat, erscheinen mir keine besonders geeigneten Pfade zu sein, um shell-skripte abzulegen (es sei denn, 'echo $PATH' gibt nochmal was anderes aus).
 
Zuletzt bearbeitet:
Zusatz:

@fsking

Mach mal einfach als user in der Konsole ein

Code:
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc

schieb deine Scripte nach /usr/local/bin und fertig ist die Laube.
 
@all: hab es jetzt so gemacht, das ich
Code:
echo "export PATH=$PATH:/usr/local/bin"
in die .bashrc geschrieben habe, das script von sdcard.sh zu sdcard umbenannt habe und es nach /usr/local/bin gepackt habe!

jetzt funktioniert alles wunderbar!

vielen dank für alle antworten!

lg,
fsking
 
@kalle:
Code:
foo='echo hallo o/'
$foo # gibt "hallo o/" aus
echo $foo # gibt "echo hallo o/" aus
# unterschied klar?

@supersucker:
Code:
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc
Da wird $PATH expandiert, deswegen entweder single-quotes nutzen oder dollar sign escapen.

und @fsking:
ich hoffe du hast trotz allen Anscheins nicht "echo export.." sondern einfach nur "export ..." in die bashrc gepackt. (Sollte ja eigentlich sonst auch nicht funktionieren, hm..)
 
Code:
foo='echo hallo o/'
$foo # gibt "hallo o/" aus
echo $foo # gibt "echo hallo o/" aus
# unterschied klar?

Gott_in_schwarz, ich suggerierte doch, dass ich das durchaus weiß, nur spielte das in diesem Fall keine Rolle.

und @fsking:
ich hoffe du hast trotz allen Anscheins nicht "echo export.." sondern einfach nur "export ..." in die bashrc gepackt. (Sollte ja eigentlich sonst auch nicht funktionieren, hm..)

*zustimm*
 

Ähnliche Themen

PATH wird nicht richtig durchsucht

Skript bei Lubuntu nach jedem Start ausführen

bash esac problem

Problem bei autostart / Ausführung mit meinem SH-Script

Windows clients können nicht mehr auf lange laufendes System zugreifen

Zurück
Oben