上下文是:

eval TLEN=\${#$1}
if [ $TLEN -gt 35 ]
then
  ...
fi

我想它可能被用来找出 $1 的长度。我不知道“\${#$1}”是什么意思。
我很久以前读过 bash 手册,但大部分都忘记了,请解释一下 ${something} 这个符号是什么意思,我依稀记得那个符号是一种常见的模式。

好的,我在手册中找到了它。 “${#parameter}”是对长度计数的响应。

最佳答案

eval TLEN=\${#$1} 行表示:取第一个参数 ($1),从中读取另一个参数的编号并计算另一个参数的长度。

如果您的代码作为脚本或函数 f 被调用,例如

f 2 qwe

它会将 TLEN 计算为 3,因为它将采用第一个参数,它指向第二个参数,第二个参数的长度为 3

关于bash - "eval TLEN=\${#$1}"是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21374483/

10-14 11:55