Ich lerne die Grundlagen der Shell-Programmierung, also habe ich etwas Einfaches wie geschrieben
#!/bin/bash
read var1
read var2
if [ var1 -lt var2 ]; then
echo "var1 is lt var2"
else
echo "var2 is lt var1"
fi
Ich verstehe, dass Variablen in Bash untypisiert sind und dass jede Variable als Ganzzahl verwendet werden kann, wenn sie nur Ziffern enthält. Aber ich bekomme den Fehler "Integer-Ausdruck erwartet", wenn ich das ausführe ... warum?
[[ $var1 < $var2 ]]
ist ein String-Vergleich , kein arithmetischer Vergleich ...[[ 11 > 2 ]]
Tests als falsch ...[[ 11 -gt 2 ]]
Tests als wahr