Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
05.08.2021, 07:39:54

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25805
  • Letzte: antaresc
Statistiken
  • Beiträge insgesamt: 748240
  • Themen insgesamt: 60197
  • Heute online: 420
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online

Autor Thema: [gelöst]  Abfrage einer Bedingung mit if....then funktioniert nicht  (Gelesen 349 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[gelöst] Abfrage einer Bedingung mit if....then funktioniert nicht
« am: 06.06.2021, 14:58:21 »
Linux Mint 20.1 Cinnamon

Folgendes Bash-Script

#!/bin/bash
# Teamviewer-Verbindungs-Auswahl
#

annette=1111111111
sophie=22222222
claudia=33333333

function tviewer
{
teamviewer
sleep 2
wmctrl -a "TeamViewer"
sleep 1
for i in {0..14}
 do xte "key Tab"
 i=$i+1
done
xte "str $idnr"
exit
}

auswahl=`dialog --radiolist "verbinden mit ..." 0 0 3 \
  Annette "" off\
  Sophie "" off\
  Claudia "" off 3>&1 1>&2 2>&3`
dialog --clear
clear

if [$auswahl="Annette"]
then
 idnr=$annette
fi

if [$auswahl="Sophie"]
then
 idnr=$sophie
fi

if [$auswahl="Claudia"]
then
 idnr=$claudia
fi

tviewer


Bei der Ausführungen kommt es zu folgender Fehlermeldung:

/home/vanneel/Dokumente/starte.sh: Zeile 31: Annette=Annette: Befehl nicht gefunden
/home/vanneel/Dokumente/starte.sh: Zeile 36: Annette=Sophie: Befehl nicht gefunden
/home/vanneel/Dokumente/starte.sh: Zeile 41: Annette=Claudia: Befehl nicht gefunden


Es ist so wie wenn das "if" gar nicht da wäre :-(

Vermutlich ein lapidarer Fehler, aber ich komme nicht darauf.

Vielen Dank für evtl. Hilfe...

« Letzte Änderung: 07.06.2021, 08:31:26 von van Neel »

Re: Abfrage einer Bedingung mit if....then funktioniert nicht
« Antwort #1 am: 06.06.2021, 16:54:15 »
"=" geht nicht; sondern entweder "==" oder "-eq" verwenden.

Re: Abfrage einer Bedingung mit if....then funktioniert nicht
« Antwort #2 am: 06.06.2021, 18:08:06 »
Schuld ist das fehlende Leerzeichen hinter und vor der eckigen Klammer:
#!/usr/bin/bash
auswahl=Annette
if [ $auswahl = "Annette" ]
then
    echo "Yeah"
fi

Re: Abfrage einer Bedingung mit if....then funktioniert nicht
« Antwort #3 am: 06.06.2021, 19:38:02 »
Es ist so wie wenn das "if" gar nicht da wäre
Moin,
schau dir mal >case< an das ist etwas eleganter...
INFO: https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_f%C3%BCr_Anf%C3%A4nger/#Programmfuehrung
Gruß
Wolfgang

Re: Abfrage einer Bedingung mit if....then funktioniert nicht
« Antwort #4 am: 06.06.2021, 19:40:55 »
Danke allen  ;D

Es waren also zwei Fehler  :o

Re: Abfrage einer Bedingung mit if....then funktioniert nicht
« Antwort #5 am: 07.06.2021, 00:23:34 »
Es waren also zwei Fehler  :o
Nein, es war nur einer  ;D
"[ " ist nämlich nicht einfach eine öffnende eckige Klammer, sondern ein anderer Ausdruck für den Befehl "test".
/usr/bin/[
/usr/bin/test

Und mit "man test" oder "man ["sieht man dann:
STRING1 = STRING2