result = (condition) ? value_if_true : value_if_false;
In dieser Syntax ist Bedingung ein bedingter Ausdruck, der value_if_true zurückgibt, wenn die Bedingung wahr (ungleich Null) ist, andernfalls wird value_if_false zurückgegeben.
Für die Syntax expr 2?1:0 bedeutet das:
- Wenn 2 wahr ist (ungleich Null), wird 1 zurückgegeben, andernfalls wird 0 zurückgegeben.
Da 2 ungleich Null ist, ist der Wert dieses Ausdrucks 1. Dies kann als vollständiges Shell-Skript geschrieben werden:
#!/bin/bash
result=$(expr 2?1:0)
echo "Result: $result"
expr $i%[llength $vars]?0:1