LMU - Das Hilfe Forum für Linux Mint

Software => Shell-Programmierung und Scripting => Thema gestartet von: van Neel am 06.06.2021, 14:58:21

Titel: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: van Neel 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...

Titel: Re: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: carlolf am 06.06.2021, 16:54:15
"=" geht nicht; sondern entweder "==" oder "-eq" verwenden.
Titel: Re: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: pinky 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
Titel: Re: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: Wolfgang58 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
Titel: Re: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: van Neel am 06.06.2021, 19:40:55
Danke allen  ;D

Es waren also zwei Fehler  :o
Titel: Re: Abfrage einer Bedingung mit if....then funktioniert nicht
Beitrag von: MAlfare 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