Я работаю над сценарием Bash, и длина строки, содержавшейся в определенной переменной, является одним из моих условий. Текущая строка W5u7TBTzF17GGFV8DBJHvgAAAAI
. Первоначально я имею, считают длину строки справкой wc -c
:
$ VAR='W5u7TBTzF17GGFV8DBJHvgAAAAI'; echo "$VAR" | wc -c
28
Но мое условие сценария [[ ${#VAR} -eq 28 ]]
никогда не передавайте. Затем я решил считать символы на одним. Действительно длина строки является 27 символами, также значение ${#VAR}
27:
$ echo "${#VAR}"
27
Таким образом, я нахожусь в удивлении - куда это различие прибывает из?
Это - путь echo
работы. Теперь сделайте
echo koko
Вы добираетесь
georgek@georgek-HP-Pavilion-17-Notebook-PC:~$ echo koko
koko
Но сделайте echo -n koko
и Вы добираетесь
georgek@georgek-HP-Pavilion-17-Notebook-PC:~$ echo -n koko
kokogeorgek@georgek-HP-Pavilion-17-Notebook-PC:~$
Так wc
получает newline character
также. Использовать
echo -n "${VAR}" | wc -c
Получить желаемый результат. echo
команда добавит newline
символ, так, чтобы считался также. Удалить это и получить реальное использование количества -n
опция.