#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