Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

BASH SCRIPTING IF PROBLEM

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Benutzeravatar
torbla
Member
Member
Beiträge: 183
Registriert: 31. Aug 2004, 13:27
Wohnort: Mönchengladbach

BASH SCRIPTING IF PROBLEM

Beitrag von torbla »

Hallo Leute ich versuche ein Script zu schreiben das mir für den Benutzer ein Laufwerk einbindet. Das sieht so aus

Code: Alles auswählen

#!/bin/bash
sudo smbmount //PC/Freigabe /mnt-punkt -o username=tux, uid=tux,password=tux
So jetzt möchte ich das er mir sagt es hat gefunzt oder nicht.

Code: Alles auswählen

if /usr/bin/smbmount = sterr 
then

 echo "Laufwerk wurde nicht eingebunden! "

else
 
echo "Laufwerk wurde eingebunden"

fi
Leider funktioniert das nicht so. Habe auch schon die varianten

Code: Alles auswählen

if [ /usr/bin/smbmount = sterr ] 
Dann zeigt er mir immer das es erfolreich war.

WAS MACHE ICH DEN FALSCH
ES IST LEICHTER EIN ATOM ZU SPALTEN, ALS VORURTEILE ABZUBAUEN (Albert Einstein)
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Re: BASH SCRIPTING IF PROBLEM

Beitrag von Hermann »

torbla hat geschrieben:So jetzt möchte ich das er mir sagt es hat gefunzt oder nicht.
Hallo torbla, für mein Backup teste ich vorher ob das Ziel existiert so:

Mit mkdir versuche ich einen Ordner ".test_ordner_tmp" auf dem Ziel-Laufwerk zu erstellen, wenn es funktioniert ist alles O.K. und das Backup startet.

rmdir /pfad/.test_ordner_tmp >/dev/null
if mkdir /pfad/.test_ordner_tmp >/dev/null ; then
rmdir /pfad/.test_ordner_tmp >/dev/null
# Laufwerk existiert
# weitere Anweisungen
else
# Laufwerk existiert nicht
# weitere Anweisungen
fi

Gruß, Hermann
Benutzeravatar
torbla
Member
Member
Beiträge: 183
Registriert: 31. Aug 2004, 13:27
Wohnort: Mönchengladbach

Beitrag von torbla »

Ne leider war das nicht die Lösung jetzt nur das else ? Geht aber nicht in die schleife
ES IST LEICHTER EIN ATOM ZU SPALTEN, ALS VORURTEILE ABZUBAUEN (Albert Einstein)
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Hermann »

torbla hat geschrieben:Ne leider war das nicht die Lösung jetzt nur das else ? Geht aber nicht in die schleife
Hallo torbla, möchtest Du nur denn else Teil? Dann ein if ! (not):

rmdir /pfad/.test_ordner_tmp >/dev/null
if ! mkdir /pfad/.test_ordner_tmp >/dev/null ; then
# Laufwerk existiert nicht
# weitere Anweisungen
fi

Gruß, Hermann
Benutzeravatar
torbla
Member
Member
Beiträge: 183
Registriert: 31. Aug 2004, 13:27
Wohnort: Mönchengladbach

Beitrag von torbla »

Also ich möchte das er beises macht den then Teil und dann den else Teil

if ! /usr/bin/smbmount >/dev/null ; then

echo " Hat leider nicht geklappt

else

echo hat geklappt

fi

Leider macht er nur den oberen Teil :-(
ES IST LEICHTER EIN ATOM ZU SPALTEN, ALS VORURTEILE ABZUBAUEN (Albert Einstein)
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Hermann »

torbla hat geschrieben:Also ich möchte das er beises macht den then Teil und dann den else Teil
Hallo torbla, so gibt es in jedem Fall eine Ausgabe:

#!/bin/bash

fehler=0

rmdir /pfad/.test_ordner_tmp >/dev/null
if mkdir /pfad/.test_ordner_tmp >/dev/null ; then
rmdir /pfad/.test_ordner_tmp >/dev/null
fehler=0
else
fehler=1
fi

if [ "$fehler" = "1" ] ; then
echo "Fehler"
else
echo "Alles i.O."
fi

Gruß, Hermann
Benutzeravatar
Hermann
Hacker
Hacker
Beiträge: 442
Registriert: 11. Mai 2004, 18:55
Wohnort: Duisburg
Kontaktdaten:

Beitrag von Hermann »

Hallo torbla, noch eine Möglichkeit:

#!/bin/bash
sudo smbmount //PC/Freigabe /mnt-punkt -o username=tux, uid=tux,password=tux
wert=$?

der Exit-Code des letzten aufgerufenen Programms ist in der Variable $? abgelegt.

Hier gibt es eine Anleitung zur Shell-Programmierung die man downloaden kann:
http://www.selflinux.org

Gruß, Hermann
Benutzeravatar
torbla
Member
Member
Beiträge: 183
Registriert: 31. Aug 2004, 13:27
Wohnort: Mönchengladbach

Beitrag von torbla »

Hallo hat funktioniert das Problem lag im Schleifenkopf der Fehler lag bei = es ist aber richtig -eq :-) und schon funzt es danke für das script das hat mir sehr geholfen.
ES IST LEICHTER EIN ATOM ZU SPALTEN, ALS VORURTEILE ABZUBAUEN (Albert Einstein)
Antworten