如何获取存储在变量中的字符串长度并将其赋值给另一个变量?

myvar="some string"
echo ${#myvar}  
# 11

如何将另一个变量设置为输出11?


当前回答

使用你提供的例子

#KISS (Keep it simple stupid)
size=${#myvar}
echo $size

其他回答

在回复帖子开头时:

如果你想在命令行或函数参数中使用这个…

代码:

size=${#1}

可能有这样的情况,你只是想检查一个零长度的参数,而不需要存储一个变量。我相信你可以使用这样的语法:

if [ -z "$1" ]; then
    #zero length argument 
else
    #non-zero length
fi

有关Bash条件表达式的更完整列表,请参阅GNU和wooledge。

要获取存储在变量中的字符串长度,可以这样做:

myvar="some string"
size=${#myvar} 

要确认它被正确保存,回显它:

$ echo "$size"
11

使用你提供的例子

#KISS (Keep it simple stupid)
size=${#myvar}
echo $size

也许只需要使用wc -c来计算字符数:

myvar="Hello, I am a string."
echo -n $myvar | wc -c

结果:

21

如果你想在命令行或函数参数中使用它,请确保使用size=${#1}而不是size=${#$1}。第二个可能更符合直觉,但语法不正确。