1*13de33a5SJulio Merino 2*13de33a5SJulio Merinofailures=0 3*13de33a5SJulio Merinoi=1 4*13de33a5SJulio Merinoset -f 5*13de33a5SJulio Merinowhile [ "$i" -le 127 ]; do 6*13de33a5SJulio Merino # A different byte still in the range 1..127. 7*13de33a5SJulio Merino i2=$((i^2+(i==2))) 8*13de33a5SJulio Merino # Add a character to work around command substitution's removal of 9*13de33a5SJulio Merino # final newlines, then remove it again. 10*13de33a5SJulio Merino c=$(printf \\"$(printf %o@ "$i")") 11*13de33a5SJulio Merino c=${c%@} 12*13de33a5SJulio Merino c2=$(printf \\"$(printf %o@ "$i2")") 13*13de33a5SJulio Merino c2=${c2%@} 14*13de33a5SJulio Merino IFS=$c 15*13de33a5SJulio Merino set -- $c2$c$c2$c$c2 16*13de33a5SJulio Merino if [ "$#" -ne 3 ] || [ "$1" != "$c2" ] || [ "$2" != "$c2" ] || 17*13de33a5SJulio Merino [ "$3" != "$c2" ]; then 18*13de33a5SJulio Merino echo "Bad results for separator $i (word $i2)" >&2 19*13de33a5SJulio Merino : $((failures += 1)) 20*13de33a5SJulio Merino fi 21*13de33a5SJulio Merino i=$((i+1)) 22*13de33a5SJulio Merinodone 23*13de33a5SJulio Merinoexit $((failures > 0)) 24