Dies ist ein Geschwindigkeitstest über verschiedene Möglichkeiten, "Boolean" Werte in Bash zu testen:
#!/bin/bash
rounds=100000
b=true # Für true; b=false für false
type -a true
time for i in $(seq $rounds); do command $b; done
time for i in $(seq $rounds); do $b; done
time for i in $(seq $rounds); do [ "$b" == true ]; done
time for i in $(seq $rounds); do test "$b" == true; done
time for i in $(seq $rounds); do [[ $b == true ]]; done
b=x; # Oder einen beliebigen nicht-leeren String für true; b='' für false
time for i in $(seq $rounds); do [ "$b" ]; done
time for i in $(seq $rounds); do [[ $b ]]; done
b=1 # Oder eine beliebige Nicht-Null-Integer für true; b=0 für false
time for i in $(seq $rounds); do ((b)); done
Es würde etwas in der Art ausgeben:
true ist eine integrierte Shell-Funktion
true ist /bin/true
real 0m0,815s
user 0m0,767s
sys 0m0,029s
real 0m0,562s
user 0m0,509s
sys 0m0,022s
real 0m0,829s
user 0m0,782s
sys 0m0,008s
real 0m0,782s
user 0m0,730s
sys 0m0,015s
real 0m0,402s
user 0m0,391s
sys 0m0,006s
real 0m0,668s
user 0m0,633s
sys 0m0,008s
real 0m0,344s
user 0m0,311s
sys 0m0,016s
real 0m0,367s
user 0m0,347s
sys 0m0,017s