Se você tiver seq
disponível, poderá fazer:
for attempt in $(seq 1 3)
do
gksu command && break
done
Se seq
não estiver disponível, mas você tiver (e quiser usar) bash:
for((attempt=1;attempt<=3;attempt++))
do
gksu command && break
done
ou até mais simples (dica do chapéu para drewbenn ):
for attempt in {1..3}
do
gksu command && break
done