В учебнике А.В. Столярова «Азы программирования» в главе 2.13.2 приводится пример небольшого теста, написанного на языке Bourne Shell, который должен помочь в тестировании написанных программ.
У меня это свой вариант процедуры str на Pascal, которая переводит число в строковое представление и при вводе str(321.53459:15:9, s) занесет в переменную s строку " 321.534590000" длиной 15 символов с 9-ю символами после запятой и 2-мя пробелами вначале.
Я переписал под себя тестовую программу:
#1/bin/sh
# RealToStringEdit_Test.sh
while read a b c d ; do
res=`echo $a $b $c | ./RealToStringEdit`
if [ x"$d" != x"$res" ]; then
echo TEST $a $b $c FAILED: expected "$d", got "$res"
else
echo CONGRATULATIONS!
fi
done <<END
321.53459 15 9 ' 321.534590000'
END
Вопрос - как занести в переменную $d строку с пробелами в начале, как в моем случае? У меня строка заносится с кавычками, а мне нужно без.
Вопрос в догонку - для чего ставятся x перед переменными в условии?