Dumme Frage

J

Janine

Eroberer
Hi Leute also wollt nur kurz wissen wenn ich ein Shell Script geschrieben habe
z.B. test muss ich ja zum aufrufen des Scripts "sh test" eingeben. Kann ich das auch iwie ändern das ich nur "test" eingeben kann und er führt das Script aus?
 
Ist eigentlich gar nicht so schwer.

Ich gehe mal davon aus, daß du dich im gleichen Verzeichnis, wie dein Script befindest.

Sollte das Script nicht ausführbar sein, dann via chmod ausführbar machen.
Sollte das Script nicht im Pfad liegen, dann via
Code:
ghost@master-012:~$ ./test
ausführen.

Möglicherweise mußt du noch die SheBang-Zeile einfügen.
 
Kann ich das auch iwie ändern das ich nur "test" eingeben kann und er führt das Script aus?
Am besten, du legst ein extra Verzeichnis für deine Scripts an. DAnn erweierst du die Umgebungsvariable PATH um dieses Verzeichnis:
Code:
export PATH=$PATH:/pfad/zum/verzeichnis
in die ~/.bashrc eintragen.
Du kannst natürlich so viele Pfade angeben, wie du willst. Aber wichtig: immer durch einen Doppelpunkt trennen!
 
Hm, ... warum posten hier eigentlich manche User im "gebeugten Stil" ??
 

Ich meinte doch damit:
Betreff: Dumme Frage <--- ???

Das ist doch schon Richtung: Haut mich bloß net ich will doch nur etwas kleines wissen.

... Janine, jetzt bitte nicht als Angriff ansehen, aber Du könntest besser schreiben z.B. "Frage zum Script" - wäre auch aussagekräftiger ;) ...
 
Zuletzt bearbeitet:
ja sorry hast recht werd mich dran halten hihi geht das nicht auch das man innerhalb des scripts eine zeile einfügt und es somit funzt? mit den rechten hat das doch nix zu tun oder? ausführbar ist das ding ja nur ich will nicht zum ausführen "sh" immer eingeben sondern einfach den namen :) maybe probier ich mal das mit dem ordnern oder path
 
Was ihr oben alle schreibt funktioniert nur wenn auch die shebang Zeile vorhanden ist (#!/bin/sh), ansonsten kann er den Script nicht ausführen.
 
ja sorry hast recht werd mich dran halten hihi geht das nicht auch das man innerhalb des scripts eine zeile einfügt und es somit funzt? mit den rechten hat das doch nix zu tun oder? ausführbar ist das ding ja nur ich will nicht zum ausführen "sh" immer eingeben sondern einfach den namen :) maybe probier ich mal das mit dem ordnern oder path

Es tut gut zu sehen, dass es jemand einsieht, dass er nicht sein ganzes Leben lang gebeugt gehen muss :) ...

Also in Dein Script gibst Du in die aller erste Zeile ein:
Code:
#!/bin/bash
damit entfällt das "sh" vor dem Script.

Cu
W.

NACHTRAG: Verdammt. Da war einer um eine Millisekunde schneller :D ...
 
ganz einfach das fertige script (wenn du dir sicher bist, dass es keinen schaden an deinem system ausrichten kann) z.B. nach /usr/local/bin kopieren. dann kannst du es jederzeit nur mit der eingabe des namens aufrufen.

ps: das war zwar keine dumme frage aber ein dummer threadtitel
 
ja sorry hast recht werd mich dran halten hihi geht das nicht auch das man innerhalb des scripts eine zeile einfügt und es somit funzt? mit den rechten hat das doch nix zu tun oder? ausführbar ist das ding ja nur ich will nicht zum ausführen "sh" immer eingeben sondern einfach den namen :) maybe probier ich mal das mit dem ordnern oder path

Es tut gut zu sehen, dass es jemand einsieht, dass er nicht sein ganzes Leben lang gebeugt gehen muss :) ...

Code:
#!/bin/bash

aLlErDinGs iSt dAs LeSEn dIeSeS bEitRagEs nIchT gEraDe eINe vErBeUgunG weRt.

AKA Deine Shifttaste ist kaputt ...

Gruß Wolfgang
 
Was ist denn los, Wolfgang? 0o
Er hat doch nur Nomen, Satzanfänge und Anreden groß geschrieben, was ist daran so schlimm? :(

Viel übler find' ich die fehlenden Kommata bei Janine, sowas ist eine Belästigung für den Leser.

@ Topic: Es wurde schon ein paar Mal gesagt, das Zauberwort heißt "she bang"-Zeile. Das heißt die erste Zeile deines Skripts gibt die auszuführende Shell an, in der (auch bereits geposteten) Form:
Code:
#!/bin/sh
[I]dann kommt hier das eigentliche Skript hin...[/I]

Das Kreuz, welches eine Zeile normalerweise zu einem Kommentar degradiert, bedeutet in der ersten Zeile eines Skripts halt etwas anderes.

Wenn du willst, dass deine Skirpt wie "sh skript_name" ausgeführt wirst, gibst du halt "#!/bin/sh" als erste Zeile an, wenn du es von der Bash ausgeführt haben möchtest gibst du halt "#!/bin/bash" als erste Zeile an (das entspricht dann: "bash dein_skript").

Mfg an alle, der Gott in schwarz :D
 
Es wundert mich sehr, dass niemand hier darauf hinweist, dass allein das executable-Bit dafür zuständig ist, ob eine Datei allein ausführbar ist oder nicht.
Ob nun eine SheBang-Zeile da ist oder nicht.
Ein sh beim Programmaufruf startet lediglich das Script mit der Posix-Shell, auch ohne Executable-Bit.

Die SheBang-Zeile definiert nur, welche Shell benutzt werden soll, wenn das Script ausgeführt wird.
Ist keine Shell (oder ein anderer Interpreter, z.B perl) angegeben, wird die aktuelle benutzt.
 
Geht das nicht mit:
Code:
chmod u+x test
?

Wenn ich die PATH variable mit
Code:
export PATH=$PATH:/pfad/zum/verzeichnis
editiere, ist das immer wieder weg wenn ich die shell schließe.
Geht das auch dass das bleibt?
 
Geht das auch dass das bleibt?
Das wurde dir schon gesagt.
Du musst die Zeile in die Konfiguratinsdatei deiner Shell eintragen, damit sie beim Start erneut eingelesen wird. Für die bash wäre das die ~/.bashrc
 
[...]
Wenn ich die PATH variable mit
Code:
export PATH=$PATH:/pfad/zum/verzeichnis
editiere, ist das immer wieder weg wenn ich die shell schließe.
Geht das auch dass das bleibt?
Dann trage es doch ins passende rc-Phile ein (z.B. bash -> ~/.bashrc)
 
Die Datei ~/.bashrc gibt es bei mir nicht.
Meine Distribution ist Slackware 12.
 

Ähnliche Themen

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Script kopieren

Fragen zu stty, quotes und Datein (flush)

Kurzzusammenfassung der Befehle und Progr. für die shell

geburtstags reminder

Zurück
Oben