如何获取存储在变量中的字符串长度并将其赋值给另一个变量?
myvar="some string"
echo ${#myvar}
# 11
如何将另一个变量设置为输出11?
如何获取存储在变量中的字符串长度并将其赋值给另一个变量?
myvar="some string"
echo ${#myvar}
# 11
如何将另一个变量设置为输出11?
当前回答
使用你提供的例子
#KISS (Keep it simple stupid)
size=${#myvar}
echo $size
其他回答
如果你想在命令行或函数参数中使用它,请确保使用size=${#1}而不是size=${#$1}。第二个可能更符合直觉,但语法不正确。
在回复帖子开头时:
如果你想在命令行或函数参数中使用这个…
代码:
size=${#1}
可能有这样的情况,你只是想检查一个零长度的参数,而不需要存储一个变量。我相信你可以使用这样的语法:
if [ -z "$1" ]; then
#zero length argument
else
#non-zero length
fi
有关Bash条件表达式的更完整列表,请参阅GNU和wooledge。
下面是计算变量长度的几种方法:
echo ${#VAR}
echo -n $VAR | wc -m
echo -n $VAR | wc -c
printf $VAR | wc -m
expr length $VAR
expr $VAR : '.*'
要在另一个变量中设置结果,只需将上面的命令赋值给另一个变量,如下所示:
otherVar=`echo -n $VAR | wc -m`
echo $otherVar
http://techopsbook.blogspot.in/2017/09/how-to-find-length-of-string-variable.html
bash中的字符串长度
str="Welcome to Stackoveflow"
length=`expr length "$str"`
echo "Length of '$str' is $length"
输出
“欢迎来到stackoverflow”的长度是23
你可以使用:
MYSTRING="abc123"
MYLENGTH=$(printf "%s" "$MYSTRING" | wc -c)
wc -c或wc——bytes用于字节计数= Unicode字符以2,3或更多字节计数。 wc -m或wc——chars用于字符计数= Unicode字符将单独计数,直到它们使用更多字节为止。