Команда для подсчета символов, присутствующих в переменной

#linux

#linux

Вопрос:

Я пытаюсь подсчитать количество символов, присутствующих в переменной. Я использовал приведенную ниже команду оболочки. Но я получаю сообщение об ошибке — команда не найдена в строке 4

 #!/bin/bash

for i in one; do
n = $i | wc -c
echo $n
done
 

Может ли кто-нибудь помочь мне в этом?

Ответ №1:

В bash вы можете просто написать ${#string} , что вернет длину переменной string , то есть количество символов в ней.

Ответ №2:

Что-то вроде этого:

 #!/bin/bash

for i in one; do
n=$(echo $i | wc -c)
echo $n
done
 

Ответ №3:

Назначения в bash не могут иметь пробел перед знаком равенства. Кроме того, вы хотите захватить выходные данные команды, которую вы запускаете, и назначить ее $n , а не тому оператору, который, вероятно, просто назначил $i бы $n .

Вместо этого используйте следующее:

 #!/bin/bash

for i in one; do
n=`$i | wc -c`
echo $n
done
 

Ответ №4:

Это может быть так просто:

 str="abcdef"; wc -c <<< "$str"
7
 

Но имейте в виду, что конец строки считается символом:

 str="abcdef";  cat -A <<< "$str"
abcdef$
 

Если вам нужно удалить его:

 str="abcdef"; tr -d 'n' <<< "$str" |  wc -c
6