В попытке отладить скрипт, я печатаю переменные, содержащие текст, довольно стандартные вещи, за исключением того, что переменные ведут себя не так, как ожидается. Я обнаружил, что одна из строк файла, который я читаю, имеет длину менее 17 символов, что еще больше запутывает скрипт, поэтому я тестирую менее 17 и пытаюсь добавить 18 пробелов , Что происходит, так это то, что пробелы добавляются в начало переменной и перезаписывают буквы там, а не в конце, где я ожидаю их добавления. Расчет длины показывает правильно на 35, хотя.
do STR=$line
length=${#STR}
spaces=". ." <<<<18 spaces in here
end=end
if [ $length -le 17 ]
then
TEMPSTR=$STR
echo $TEMPSTR
echo $end
echo $length
TEMPSTR2="$TEMPSTR$spaces"
length=${#TEMPSTR2}
echo $TEMPSTR2
echo $length
fi
читает в строке "Fan Tray(8 мест)", получая:
Fan Tray
end
17
. . <<< 18 spaces in here
35
Я ожидаю, что это покажет:
Fan Tray
end
17
Fan Tray. . <<< 18 spaces in here
35