ubuntuusers.de

mit shell script andere scripte in neuem fenster öffnen

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

ubuntu-windows

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

Hallo zusammen,

ich habe folgendes Problem:

Ich habe insgesamt 6 Scripte. Diese soll der Benutzer einzelnd, zentral über ein anderes Script (zum Verwalten) aufrufen können. Er soll dabei root-Rechte haben, sein Passwort jedoch nur einmal am Anfang eingeben müssen. Das Script soll in einem neuen Fenster ausgeführt werden. Außerdem soll das Script auf ALLEN Linux-Distributionen laufen können.

Im Grunde genommen, will ich ein Verwaltungsscript haben das im übertragenden Sinne irgendwie so aussehen sollte:


#!/bin/sh


sudo (für jetzt und alle neuen Fenster)

while true

 do

   echo "1 - Script1"

   echo "2 - Script2"

   echo "3 - Script3"

   echo "4 - Script4"

   echo "5 - Script5"

   echo "6 - Script6"

   echo "Bitte geben Sie eine Zahle von 1 bis 6 ein um das jeweilige Script zu öffnen: "

   read SCRIPT

   if $SCRIPT==1 then (

     StartInNewWindow script1.sh)

   elseif $SCRIPT==2 then (

     StartInNewWindow script2.sh)

   elseif $SCRIPT==3 then (

     StartInNewWindow script3.sh)

   elseif $SCRIPT==4 then (

     StartInNewWindow script4.sh)

   elseif $SCRIPT==5 then (

     StartInNewWindow script5.sh)

   elseif $SCRIPT==6 then (

     StartInNewWindow script6.sh)

   fi

 done

Ich weiss das hier enhält noch viele Fehler 😕 , aber ich bin absoluter Anfänger und würde mich freue, wenn jemand mir helfen könnte. ☺

Mfg ubuntu-windows

Bearbeitet von Antiqua:

Code ist in Codeblöcken lesbarer, d.h. Codeblock eingefügt, um die Übersicht im Forum zu verbessern → Hilfe zur Syntax

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

a) Wozu soll das gut sein? Insbesondere wenn der User ein Skript gestartet hat, aber noch nicht beendet, und jetzt will er ein weiteres starten - dann muss er doch Dein Skript verlassen und trotzdem nochmal das sudo-Passowort eingeben.

b) Startet er Dein Skript mit sudo muss er sudo nur einmal eingeben.

c) help select in der bash eingeben.

d) bash ist das Stichwort: Linux ist so frei, dass nicht überall die gleiche Shell installiert sein muss. Dankbarerweise ist die bash aber wohl auf den meisten Systemen präsent. Programme die Du aus der bash aufrufst vielleicht nicht immer. Was ermuntert Dich zu glauben dass alle Welt auf Dein Programm wartet, dass es gleich so universal sein soll, obwohl Du erst anfängst?

e) Elend und Abend enden auf d; wegen, einzeln, eben, radeln und leben nicht. Für die letzten 2 Worte gibt es aber legale Ableitungen vom Stammwort mit d. Radelnd erreichte er das Ziel, aber nicht lebend.

ubuntu-windows

(Themenstarter)

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

Erstmal Danke für die Antwort. ☺ Ich habe mich wahrscheinlich falsch ,sorry. 😐

Ich habe folgendes Szenario:

– ich will mit verschiedenen Scripts das Verwalten eines Samba-Servers vereinfachen

– allerdings muss ich die Scripts an einem anderen PC erstellen

– gedacht sind sie für einen ipfire

– diesen kenne ich jedoch nicht und muss die Scripts fertig haben, noch bevor ich ihn kennenlernen/mir anschauen kann

– diese Scripts sollen sozusagen die Tools für den Samba-Server sein, damit z.B. das Benutzerverwalten einfacher wird

– es gibt dann halt einen Script zum Benutzer anlegen, einen zum Löschen , einen zu Anlegen einer Gruppe, usw.

– diese Scripts funktionieren auch einwandfrei

– nun soll es jedoch so sein, dass man nur ein Script starten muss und sich dann für das jeweilige Tool entscheiden kann

Meine Hauptprobleme dabei sind:

1. das Starten des ausgewählten Scripts in einem neuen terminal/Fenster

–> damit beim Schließen das Verwaltungs-Script noch offen ist und mit einem anderen Tool weitergearbeitet werden kann

2. wenn möglich dann die einmalige eingabe des root-Passwotes

–> gleich beim Verwaltungs-Script und dann die Übertragung der Rechte auf neues Script/Fenster

3. auserdem könnte ich mir vorstellen, das ich weitere Fehler gemacht habe, da ich noch nicht alzu erfahren bin 😳

Wenn jemand für dies beiden Kernprobleme, insbesonders das Öffnen des Scripts in einem neuen Fenster eine Lösung parat hätte, wäre ich sehr dankbar. ☺

Mfg ubuntu-windows

ubuntu-windows

(Themenstarter)

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

Hallo,

ich habe mich jetzt nochmal an dem (Verwaltungs-)Script probiert 😉 und folgendes gemacht:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh


while true
 do

   # meldet die folgenden Scripte als ausführbar an
     chmod +x ./Benutzer_anlegen.sh
     chmod +x ./Benutzer_löschen.sh
     chmod +x ./Gruppe_anlegen.sh
     chmod +x ./Gruppe_löschen.sh
     chmod +x ./Benutzer_zu_Gruppe_hinzufügen.sh
     chmod +x ./Benutzer_aus_Gruppe_entfernen.sh

   # zeigt die verschiedenen Möglichkeiten/Tools an
     echo "1 - Benutzer anlegen"
     echo ""
     echo "2 - Benutzer löschen"
     echo ""
     echo "3 - Gruppe anlegen"
     echo ""
     echo "4 - Gruppe löschen"
     echo ""
     echo "5 - Benutzer zu einer Gruppe hinzufügen"
     echo ""
     echo "6 - Benutzer aus einer Gruppe entfernen"
     echo ""

   # deklariert die Variable "SCRIPT"
     echo "Bitte geben Sie eine Zahle von 1 bis 6 ein um das jeweilige Tool zu öffnen: "
     read SCRIPT

   # Startet das ausgewählte Script/Tool
     if ["$SCRIPT" = "1"] 
          then Benutzer_anlegen.sh
       elif ["$SCRIPT" = "2"]
          then Benutzer_löschen.sh
       elif ["$SCRIPT" = "3"]
          then Gruppe_anlegen.sh
       elif ["$SCRIPT" = "4"]
          then Gruppe_löschen.sh
       elif ["$SCRIPT" = "5"]
          then Benutzer_zu_Gruppe_hinzufügen.sh
       elif ["$SCRIPT" = "6"]
          then Benutzer_aus_Gruppe_entfernen.sh
       else echo "Bitte geben Sie ein Zahl von 1 bis 6 ein"
     fi

done

Nun würde es mich interessieren, ob dies so klappen kann, oder ob jemand dazu noch Verbesserungsvorschläge hätte. ☺

Mfg ubuntu-windows

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17604

Wohnort: Berlin

Select wolltest Du Dir nicht anschauen? Hat Dir nicht zugesagt?

1
2
3
4
5
while true
 do
   # meldet die folgenden Scripte als ausführbar an
     chmod +x ./Benutzer_anlegen.sh
     chmod +x ./Benutzer_löschen.sh

'anmelden' erscheint mir das falsche Wort, aber wieso müssen die Scripte mehr als einmal ausführbar gemacht werden, dazu noch in einer Schleife?

Auf Umlaute in Programmnamen würde ich auch verzichten. Gerade bei einem entfernten Server weiß man nie, mit welchen Tastaturen man darauf mal zugreifen muss.

Meine Hauptprobleme dabei sind:

1. das Starten des ausgewählten Scripts in einem neuen terminal/Fenster

Bei einem lokalen Skript macht man das z.B. mit

1
xfce4-terminal -e scriptname.sh

Verbindest Du Dich denn mit ssh -X dass Du auf der entfernten Kiste Fenster öffnen kannst? Hat die überhaupt X installiert? Als Fileserver doch eher nicht.

2. wenn möglich dann die einmalige eingabe des root-Passwotes

Habe ich ja schon gesagt - starte das Verwaltungsscript mit sudo.

ubuntu-windows

(Themenstarter)

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

Erstmal Danke für die Antwort, besonders zu der Uhrzeit. ☺

Ausführen möchte ich das ganze an der Konsole selbst. Gibt es noch eine andere Alternative zu "xfce4-terminal", dieses scheint mir normalerweise nicht standardmässig installiert zu sein. Das mit der Schleife stimmt natürlich 😳

Verbesserung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/sh


# meldet die folgenden Scripte als ausführbar an
chmod +x ./Benutzer_anlegen.sh
chmod +x ./Benutzer_löschen.sh
chmod +x ./Gruppe_anlegen.sh
chmod +x ./Gruppe_löschen.sh
chmod +x ./Benutzer_zu_Gruppe_hinzufügen.sh
chmod +x ./Benutzer_aus_Gruppe_entfernen.sh

while true
 do

   # zeigt die verschiedenen Möglichkeiten/Tools an
     echo "1 - Benutzer anlegen"
     echo ""
     echo "2 - Benutzer löschen"
     echo ""
     echo "3 - Gruppe anlegen"
     echo ""
     echo "4 - Gruppe löschen"
     echo ""
     echo "5 - Benutzer zu einer Gruppe hinzufügen"
     echo ""
     echo "6 - Benutzer aus einer Gruppe entfernen"
     echo ""

   # deklariert die Variable "SCRIPT"
     echo "Bitte geben Sie eine Zahle von 1 bis 6 ein um das jeweilige Tool zu öffnen: "
     read SCRIPT

   # Startet das ausgewählte Script/Tool
     if ["$SCRIPT" = "1"] 
          then Benutzer_anlegen.sh
       elif ["$SCRIPT" = "2"]
          then Benutzer_löschen.sh
       elif ["$SCRIPT" = "3"]
          then Gruppe_anlegen.sh
       elif ["$SCRIPT" = "4"]
          then Gruppe_löschen.sh
       elif ["$SCRIPT" = "5"]
          then Benutzer_zu_Gruppe_hinzufügen.sh
       elif ["$SCRIPT" = "6"]
          then Benutzer_aus_Gruppe_entfernen.sh
       else echo "Bitte geben Sie ein Zahl von 1 bis 6 ein"
     fi

done

Gibt es vielleicht irgendein Parameter das man beim aufrufen eines Scriptes allgemein anhängen kann, sodass es sich in einem neuen Fenster öffnet?

Mfg ubuntu-windows

ExcitedSpoon

Avatar von ExcitedSpoon

Anmeldungsdatum:
17. Juli 2010

Beiträge: 226

Wohnort: /home/berlin

Hi,

"xfce-terminal" ist wie der Name schon sagt der Standard-Terminalemulator von der Desktopumgebung XFCE. Bei Gnome heisst das dann z.B. "gnome-terminal", die Syntax zum direkten Ausführen eines Skriptes beim Öffnen des Terminals könnte jedoch von der von 'user unknown' beschriebenen Variante abweichen. In den man-pages zu deinem Terminalemulator findest du die Syntax (z.B. "man gnome-terminal").

Was meinst du mit "neues Fenster"? Ich vermute mal, dass du ein neues Terminal-Fenster meinst, in dem dann das entsprechende Skript läuft. Der Befehl von 'user unknown' tut genau das. Du musst ihn lediglich auf die von dir verwendete Desktopumgebung ummünzen (oder "xterm" verwenden, das ist bei allen X-basierten DEs mit dabei).

Viele Grüße

Martin

ubuntu-windows

(Themenstarter)

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

OK, ich werds mal versuchen, danke für die Antwort ☺

Mfg ubuntu-windows

ubuntu-windows

(Themenstarter)

Anmeldungsdatum:
27. Juni 2013

Beiträge: 35

OK klappt alles super, nochmal DANKE an alle! 😀

Mfg ubuntu-windows

Antworten |