Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
25.05.2013, 04:12:54

Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 6020
  • Letzte: Staffi
Statistiken
  • Beiträge insgesamt: 119961
  • Themen insgesamt: 11198
  • Heute online: 69
  • Am meisten online: 488
  • (16.01.2011, 08:57:12)
Benutzer Online
Mitglieder: 1
Gäste: 30
Gesamt: 31

Autor Thema:  sh, scripts und co.  (Gelesen 1636 mal)

trekiThreadstarter

sh, scripts und co.
« am: 13.04.2012, 02:50:07 »
Guten Abend allerseits

Hoffe, dass mir hier geholfen wird, denn leider hab ich
nach langem suchen und Probieren immer noch keine
Lösung. Folgende Situation:

Debian6.0 mit verschiedenen Scripts in diversen
Verzeichnissen, in denen sich jeweils eine Shell
befindet ->

/home/verzeichnis1/shell1.sh
/home/verzeichnis2/shell2.sh
/home/verzeichnis3/shell3.sh

Nun möchte ich in /home eine "globale" shell bauen,
damit ich über diese dann direkt alle 3 shells der
Unterverzeichnisse starten kann. Soll also heissen:
Ich starte in /home -> ./global.sh damit sollen dann
die anderen drei Shells (shell1, shell2, shell3) gestartet
werden.

Hintergrund: Die drei shells möchte ich nicht via cron
oder Autostart laufen lassen, jedoch will ich auch nicht
jedesmall alle drei shells manuell starten müssen, desshalb
wäre für mich eine solche "globale" shell praktisch.

In dem Fall ist hier die Frage, ist dies möglich? Wenn ja,
wie mache ich das genau? Hatte bisher immer Probleme,
wenn ich ein shell-script in einem Unterverzeichnis
ausführen wollte. Dies geht, trotz der Pfadangabe, nur,
wenn ich mich direkt in dem Verzeichnis befinde, in
welchem sich das auszuführende shell-script befindet.

Hoffe, mir kann da jemand einen Rat geben.

Mit freundlichen Grüssen

...

dies ist eine frage von einem kollegen an mich. hat einer eine ahnung?

Der Krug geht zum Brunnen bis er bricht.

atze

Re: sh, scripts und co.
« Antwort #1 am: 13.04.2012, 07:38:58 »
Da deine Frage sehr allgemein gehalten ist..

$ cat mainscript.sh
#!/bin/sh

./script1/script1.sh
./script2/script2.sh
./script3/script3.sh

$ cat script1/script1.sh
#!/bin/sh

printf 'Script1'

$ cat script2/script2.sh
#!/bin/sh

printf 'Script2'

$ cat script3/script3.sh
#!/bin/sh

printf 'Script3'

$ ./mainscript.sh
Script1Script2Script3
[code]
Realität ist etwas für Leute, die sich nichts besseres vorstellen können.

bst

Re: sh, scripts und co.
« Antwort #2 am: 13.04.2012, 11:55:54 »
Auch Hallo,

vielleicht reicht denn auch so etwas?

$ for i in verz*/scr*; do . $i; done
cu, Bernd

Re: sh, scripts und co.
« Antwort #3 am: 13.04.2012, 21:44:30 »
Klinke mich hier auch ein, habe selbes Problem. Die Lösung von atze
funktioniert leider nicht. Wie ist das von bst genau gemeint?

mfg

Sauron

  • Gast
Re: sh, scripts und co.
« Antwort #4 am: 13.04.2012, 22:00:21 »
Zitat
Die Lösung von atze
funktioniert leider nicht.
Wie hast du atze`s Vorschlag umgesetzt? Augenscheinlich kann ich an seiner Vorgehensweise nicht erkennen, warum das nicht funktionieren soll.

Re: sh, scripts und co.
« Antwort #5 am: 14.04.2012, 00:03:30 »
Zitat
Die Lösung von atze
funktioniert leider nicht.
Wie hast du atze`s Vorschlag umgesetzt? Augenscheinlich kann ich an seiner Vorgehensweise nicht erkennen, warum das nicht funktionieren soll.

Ziemlich 1:1. Bekomme jedoch immer "Datei oder Verzeichnis nicht gefunden".

mfg

bst

Re: sh, scripts und co.
« Antwort #6 am: 14.04.2012, 14:23:30 »
Hi,

wenn Du in Deinem Home-Verzeichnis bist

bst@bstx ~ $ pwd
/home/bst

und dort diese Scripts existieren:

bst@bstx ~ $ ls ver*/sc*
verzeichnis1/script1.sh  verzeichnis2/script2.sh  verzeichnis3/script3.sh

dann reicht es so aus diese hintereinander zu starten:

bst@bstx ~ $ for i in ver*/sc*; do . $i; done
123bst@bstx ~ $

cu, Bernd

Re: sh, scripts und co.
« Antwort #7 am: 14.04.2012, 16:08:48 »
for i in ver*/sc*; do . $i; done
Verstehe das nicht ganz, kannst du mir das erklären?

freundliche grüsse

Wishbone

Re: sh, scripts und co.
« Antwort #8 am: 14.04.2012, 17:44:23 »
Die Sternchen stehen für "egal was". Die Schleife startet also alles, was darauf passt. Ich rate davon ab.

Re: sh, scripts und co.
« Antwort #9 am: 14.04.2012, 18:54:36 »
Die Sternchen stehen für "egal was". Die Schleife startet also alles, was darauf passt. Ich rate davon ab.

Wie würdest du es denn machen? Will ja nur ein shell script aus einem
Unterverzeichnis starten, in dem ich mich aktuell nicht befinde, kann
das so schwierig sein?

freundliche Grüsse

Robi

  • Gast
Re: sh, scripts und co.
« Antwort #10 am: 14.04.2012, 19:51:29 »
Üblicherweise ist das Verzeichnis  /usr/local/bin dafür gedacht, dort eigene Skripte abzulegen. Und üblicherweise liegt dieses Verzeichnis im Pfad. Möchte man das Skript in einem anderen Verzeichnis liegen haben (wegen Systempflege oder aus anderen Gründen) dann kann man das auch dorthin verlinken.

Beispielsweise:
LMDE ~ # sudo mkdir /usr/local/bin #falls das Verzeichnis noch nicht vorhanden ist
LMDE ~ # nano ~/shell-script.sh # wir schreiben mal 'echo Hello World!' hinein
LMDE ~ # sudo chmod u+x ~/shell-script.sh
LMDE ~ # sudo ln -s /usr/local/bin/shell-skript.sh ~/shell-script.sh
LMDE ~ # sudo shell-script.sh
Hello World!

LMDE ~ #

Ich vollziehe das gerade an meinem System nach, und ich wundere mich, dass /usr/local/bin noch nicht existiert; habe ich noch nie erlebt! Ich persönlich habe mir den Pfad erweitert, den ich in die ~/.bashrc reingeschrieben habe: 'export PATH=/woher/auch/immer:$PATH'. Bei mir liegen Skripte auf einer anderen Partition; das erleichtert die Installation neuer Systeme ungemein.

Und noch merkwürdiger: der Pfad erfasst "werksseitig" /usr/local/bin, obwohl das Verzeichnis nicht vorhanden ist.

Den Pfad kann man sich anzeigen lassen mit 'path'. Alle Umgebungsvariablen kann man sich anzeigen lassen mit 'env'. Ein einfacher Test, ob das neue Skript im Pfad zu finden ist: 'whereis shell-script.sh'.

Wishbone

Re: sh, scripts und co.
« Antwort #11 am: 14.04.2012, 20:11:58 »
Üblich ist $HOME/bin/

Ausführreche setzen:
chmod u=rwx MEINSCRIPT
Dann MEINSCRIPT ggf. mit Pfad aufrufen. Das ist alles. Sudo brauchst Du nicht, wenn der Script keine Root-Rechte braucht.

@Robi: Hello World mit Root-Rechten ist eine echte Lachnummer. Du stelltst das Sicherheitskonzept von Linux auf den Kopf.
« Letzte Änderung: 14.04.2012, 20:18:03 von Susi »

atze

Re: sh, scripts und co.
« Antwort #12 am: 14.04.2012, 20:45:01 »
Viel "interessanter" find ich die Idee als root sudo zu benutzen.. Ist mir in den letzten Wochen schon öfter aufgefallen..

Zitat von: Robi
LMDE ~ # sudo mkdir /usr/local/bin
Realität ist etwas für Leute, die sich nichts besseres vorstellen können.

Blindenhund

Re: sh, scripts und co.
« Antwort #13 am: 14.04.2012, 20:47:59 »
you made my day! :D

*ROFL* und weghüpf - selten so gut gelacht!!! :D
# dd if = /dev/dschehennet of = /dev/dschehenna bs=666

Robi

  • Gast
Re: sh, scripts und co.
« Antwort #14 am: 14.04.2012, 22:17:14 »
@Robi: Hello World mit Root-Rechten ist eine echte Lachnummer.

Ja klar, Lachnummer. ;-) War ein Beispiel. ;-) Ich hatte gehofft, dass Du es sinnvoll ergänzt. :-))

Zitat
Du stelltst das Sicherheitskonzept von Linux auf den Kopf.
Hello World ist ein Sicherheits-Risiko? Das war mir neu... ;-)
Ich glaube nicht, dass der-diejenige(n), die hier Skripte coden, systemweit "Hello World"-Aufrufe machen wollen ...


Viel "interessanter" find ich die Idee als root sudo zu benutzen.. Ist mir in den letzten Wochen schon öfter aufgefallen..

Zitat von: Robi
LMDE ~ # sudo mkdir /usr/local/bin

Ja wirklich köstlich :-))) Wer glaubt denn sowas? :-))) Ich hab' sudo natürlich nachgetragen, weil ich mit root in der Konsole unterwegs bin. :-)))