viszonylag sokat olvastam most arról, hogy akkor mi a fene van az echo-val és a printf-fel, ha jól értem, azt mondja a POSIX, hogy valahol legyen:
https://www.unix.com/man-page/posix/1posix/printf/
a ${#var} is helyenként szarul működni látszott, úgy, hogy nem vette figyelembe a sor eleji szóközöket, ami viszont biztos nem opció nekem, szóval, most ez van, a tuti külső processzindításokat kerülném:
a="
asd
qwe r
v x";
l=${#a}; w=0; c=2; aw=0; while [ $c -le $l ]; do a=${a#?};
cc=`printf "%d" "\"$a"`;
if [ $cc -ne 10 ]; then aw=$((aw+1));
elif [ $aw -gt $w ]; then w=$aw; aw=0;
elif [ $aw -le $w ]; then aw=0;
else aw=-1; fi;
c=$((c+1)); done; echo "Width: $w ch.";