Общее количество символов любых строковых данных указывает на длину строки. Когда мы работаем со строковыми данными, важно подсчитать длину строки для решения различных задач программирования. Для подсчета общего количества символов во многих языках программирования существуют встроенные функции. Но в bash нет такой встроенной функции. Длина строки может быть подсчитана в bash несколькими способами. Как можно узнать длину строковых данных в bash, показано в этом уроке на различных примерах.
Синтаксис
Для подсчета длины строки можно использовать любой из следующих синтаксисов.
1 2 3 4 5 | ${#strvar} expr length $strvar expr "${strvar}":'.*' echo $strvar | wc -c echo $strvar |awk '{print length}' |
Приведенные выше синтаксисы показывают, что длина строки может быть подсчитана любой командой bash или без команды. Символ '#' может быть использован для подсчета длины строки без использования какой-либо команды. Команда expr
может быть использована двумя способами для подсчета длины строки. Без команды expr
, команды wc
и awk
также могут быть использованы для подсчета длины строки. Использование упомянутых команд и символа '#' для подсчета длины строки будет показано в следующей части этого урока.
Пример 1: Использование символа "#" для подсчета длины строки
Наиболее часто используемым и простым способом подсчета длины строки является использование символа "#". Следующие команды присваивают значение переменной $string и выводят общее количество символов $string.
1 2 | string="Learn Bash Programming" echo ${#string} |
После выполнения приведенной выше команды появится следующий результат.
Пример 2: Использование "expr" для подсчета длины строки
Другим способом подсчета длины строки является использование команды expr
с ключевым словом length. Следующие команды присваивают значение переменной $string, сохраняют значение длины в переменной $len и выводят значение $len.
1 2 3 | string="Язык разметки гипертекста" len=`expr length "$string"` echo "Длина строки равна $len" |
После выполнения приведенной выше команды появится следующий результат.
Создайте bash-файл с именем "len.sh" и добавьте в него следующий сценарий. Здесь от пользователя будет получено строковое значение и с помощью команды expr
будет подсчитана длина строки, которая будет выведена позже.
1 2 3 4 5 | #!/bin/bash echo "Введите строку:" read strval len=`expr "$strval" : '.*'` echo "Длина введенной строки равна $len" |
Запустите скрипт.
1 | bash len.sh |
Здесь в качестве входных данных взято "Я люблю программирование", а длина строки равна 24.
Пример 3: Использование "wc" для подсчета длины строки
Создайте bash-файл с именем "len.sh" и добавьте в него следующий скрипт. Этот сценарий будет считывать первый аргумент командной строки в переменную $strval и подсчитывать длину $strval с помощью команды wc
, которая будет выведена позже.
1 2 3 4 | #!/bin/bash strval=$1 len=`echo $strval | wc -c` echo "Длина первого аргумента командной строки равна $len" |
Запустите скрипт с одним аргументом командной строки.
1 | bash len.sh "Hello World" |
Длина "Hello World" равна 12, что выводится в качестве вывода.
Пример 4: Использование "awk" для подсчета длины строки
Создайте bash-файл с именем "len.sh" и добавьте в него следующий сценарий. Здесь в качестве входных данных будет взято имя пользователя и проверено, что длина $username меньше 6 или нет. Если длина меньше 6, то будет выдано сообщение "Invalid username", в противном случае будет выдано сообщение "Valid username".
1 2 3 4 5 6 7 8 9 | #!/bin/bash echo "Введите имя пользователя" read username len=`echo $username |awk '{print length}'` if [ $len -lt 6 ]; then echo "Неверное имя пользователя" else echo "Правильное имя пользователя" fi |
Запустите скрипт.
1 | bash len.sh |
Здесь, когда в качестве имени пользователя взято "usename", оно действительно, а когда в качестве имени пользователя взято "user", оно недействительно.
Заключение
Различные способы подсчета длины строки в bash показаны в этом руководстве на различных примерах. Пользователь может применить любой из указанных способов, чтобы узнать длину строки.